Menggugurkan Kekangan Lalai SQL Tanpa Mengetahui Nama Mereka
Dalam Pelayan SQL, mengenal pasti dan melepaskan kekangan lalai boleh menjadi mencabar, terutamanya apabila nama mereka adalah tidak diketahui atau tidak konsisten. Untuk menangani perkara ini, penjanaan pertanyaan dinamik boleh digunakan untuk mengenal pasti dan mengalih keluar kekangan lalai dengan berkesan.
Jawapan Dikembangkan:
Memperluas skrip yang dikongsi oleh Mitch Wheat, lebih pendekatan komprehensif melibatkan penjanaan dan pelaksanaan arahan DROP CONSTRAINT secara dinamik. Begini cara ia berfungsi:
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)
Penjelasan:
Faedah:
Atas ialah kandungan terperinci Bagaimana untuk Menggugurkan Kekangan Lalai SQL Tanpa Mengetahui Nama Mereka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!