背景
SQL Server 允许在列上创建默认约束。然而,在早期版本中,拼写错误常常导致约束名称不一致,例如“DF_SomeTable_ColName”和“DF_SmoeTable_ColName”。当尝试在不知道其精确名称的情况下删除默认约束时,这会带来挑战。
解决方案
要在不知道其名称的情况下有效删除默认约束,可以使用以下方法可以使用:
示例代码
以下代码示例提供了所描述方法的实现:
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 Server 默认约束?的详细内容。更多信息请关注PHP中文网其他相关文章!