Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggugurkan Kekangan Lalai Pelayan SQL Tanpa Mengetahui Namanya?
Menggugurkan Kekangan Lalai SQL Tanpa Mengetahui Nama
Dalam Pelayan SQL, kekangan lalai ialah cara untuk menentukan nilai yang akan diberikan secara automatik ke lajur jika tiada nilai lain disediakan. Walau bagaimanapun, mungkin terdapat situasi di mana nama kekangan lalai tidak diketahui atau telah disalah taip.
Cabaran
Untuk menggugurkan kekangan lalai, sintaks ALTER TABLE DROP CONSTRAINT memerlukan menyatakan nama kekangan. Malangnya, maklumat tentang kekangan lalai tidak tersedia melalui jadual INFORMATION_SCHEMA.
Penyelesaian
Satu pendekatan untuk mengatasi cabaran ini ialah menggunakan SQL dinamik untuk menjana arahan untuk melepaskan kekangan berdasarkan skema, jadual dan nama lajur. Berikut ialah contoh:
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 execute (@Command)
Skrip ini menjana perintah ALTER TABLE DROP CONSTRAINT yang diperlukan secara dinamik berdasarkan maklumat yang diberikan dan melaksanakannya, mengalih keluar kekangan lalai tanpa memerlukan nama tepatnya.
Oleh menggunakan SQL dinamik, kaedah ini membolehkan penyingkiran kekangan lalai tanpa memerlukan pengetahuan terdahulu atau kemungkinan ralat disebabkan oleh nama kekangan yang salah.
Atas ialah kandungan terperinci Bagaimana untuk Menggugurkan Kekangan Lalai Pelayan SQL Tanpa Mengetahui Namanya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!