Latar Belakang: Beberapa batasan kolom default kami dibuat tanpa nama eksplisit, jadi kami mendapatkan nama yang menyenangkan yang berbeda dari satu server ke server lainnya seperti: DF__User__TimeZoneIn__5C4D869D
Saya lebih suka mengatur semuanya agar dapat dikelola dengan penamaan yang konsisten DF_Users_TimeZoneInfo
sehingga kami dapat memastikan bahwa ada kendala yang sesuai pada tabel target di masa mendatang (seperti dalam perbandingan RedGate, atau bahkan hanya secara visual)
Saya punya skrip yang sebagian besar berfungsi untuk apa yang saya inginkan:
select 'sp_rename N''[' + s.name + '].[' + d.name + ']'',
N''[DF_' + t.name + '_' + c.name + ']'', ''OBJECT'';'
from sys.tables t
join
sys.default_constraints d
on d.parent_object_id = t.object_id
join
sys.columns c
on c.object_id = t.object_id
and c.column_id = d.parent_column_id
join sys.schemas s
on t.schema_id = s.schema_id
WHERE d.NAME like 'DF[_][_]%'
Tapi ini hanya memberi saya hasil, dan bukan sesuatu yang saya benar-benar dapat lulus menjadi eksekutif atau apa pun.
Bagaimana saya bisa membuat ini sehingga saya bisa menjalankan sp_rename
skrip - skrip itu tanpa harus menyalin semua elemen yang dikembalikan dan menempelkannya ke jendela permintaan baru dan menjalankannya lagi? Mencoba menyimpan sebanyak mungkin penekanan tombol sehingga saya dapat memperbaikinya di banyak lingkungan.