在 Microsoft SQL Server 中删除具有未知名称的默认约束
此问题解决了从 SQL 表中删除名称为未知名称的默认约束的挑战。未知,由于潜在的拼写错误。用户提供的现有查询需要精确的约束名称才能执行,这在某些情况下可能会出现问题。
解决方案
建议的解决方案包括生成并执行动态 SQL 命令以根据提供的表、列和架构信息删除约束。用户共享的代码片段可以扩展如下:
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 命令来删除特定模式中特定表和列的默认约束。该命令是根据提供的参数动态构造的,确保即使约束名称未知也可以执行而不会出现任何 SQL 错误。
以上是当名称未知时如何删除 SQL Server 中的默认约束?的详细内容。更多信息请关注PHP中文网其他相关文章!