Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggugurkan Kekangan Lalai Pelayan SQL Tanpa Mengetahui Namanya?

Bagaimana untuk Menggugurkan Kekangan Lalai Pelayan SQL Tanpa Mengetahui Namanya?

Barbara Streisand
Barbara Streisandasal
2025-01-02 17:17:39418semak imbas

How to Drop a SQL Server Default Constraint Without Knowing Its Name?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn