在不知道名稱的情況下刪除SQL 預設約束
在SQL Server 中,識別和刪除預設約束可能具有挑戰性,尤其是當它們的名稱是未知或不一致時。為了解決這個問題,可以採用動態查詢產生來有效地識別和刪除預設約束。
擴展答案:
擴展 Mitch Wheat 共享的腳本,一個更綜合方法涉及動態生成和執行 DROP CONSTRAINT 命令。它的工作原理如下:
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)
說明:
好處:
以上是如何在不知道名稱的情況下刪除 SQL 預設約束?的詳細內容。更多資訊請關注PHP中文網其他相關文章!