Menggugurkan Kekangan Lalai dengan Nama Tidak Diketahui dalam Pelayan Microsoft SQL
Soalan ini menangani cabaran untuk mengalih keluar kekangan lalai daripada jadual SQL apabila nama mereka adalah tidak diketahui, kerana kemungkinan kesilapan menaip. Pertanyaan sedia ada, seperti yang disediakan oleh pengguna, memerlukan nama kekangan yang tepat untuk pelaksanaan, yang boleh menimbulkan masalah dalam situasi tertentu.
Penyelesaian
Penyelesaian yang dicadangkan melibatkan menjana dan melaksanakan perintah SQL dinamik untuk melepaskan kekangan berdasarkan jadual, lajur dan maklumat skema yang disediakan. Coretan kod yang dikongsi oleh pengguna boleh dikembangkan seperti berikut:
declare @schema_name nvarchar(256) declare @table_name nvarchar(256) declare @col_name nvarchar(256) declare @Command nvarchar(1000) set @schema_name = N'MySchema' set @table_name = N'Department' set @col_name = N'ModifiedDate' select @Command = 'ALTER TABLE ' + @schema_name + '.[' + @table_name + '] DROP CONSTRAINT ' + d.name 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 where t.name = @table_name and t.schema_id = schema_id(@schema_name) and c.name = @col_name --print @Command execute (@Command)
Kod ini menjana perintah SQL yang diperlukan untuk melepaskan kekangan lalai untuk jadual dan lajur tertentu dalam skema tertentu. Perintah itu dibina secara dinamik berdasarkan parameter yang disediakan, memastikan ia boleh dilaksanakan tanpa sebarang ralat SQL walaupun nama kekangan tidak diketahui.
Atas ialah kandungan terperinci Bagaimana untuk Menggugurkan Kekangan Lalai dalam Pelayan SQL Apabila Nama Mereka Tidak Diketahui?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!