首页 >数据库 >mysql教程 >当名称未知时如何删除 SQL Server 中的默认约束?

当名称未知时如何删除 SQL Server 中的默认约束?

Barbara Streisand
Barbara Streisand原创
2025-01-03 18:56:39214浏览

How to Drop Default Constraints in SQL Server When Their Names Are Unknown?

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn