在不知道名称的情况下删除 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中文网其他相关文章!