SQL Server:如何DROP由SSMA创建的列约束

时间:2016-05-20 23:50:02

标签: sql-server scripting

我有一个中型数据库(~230表),从SS10迁移到SQL Server 2008 R2,从SSMA运行开始。有一堆nvarchar列,SSMA正在添加disallow_zero_length检查约束。数据的性质是这些列中存在零长度值是可能的(也是合理的)。我是SQL脚本的新手(但我尽可能快地学习),我想知道如何编写一个可以遍历表并删除不需要的约束的脚本?

谢谢!

1 个答案:

答案 0 :(得分:4)

下面的查询生成一堆SQL drop语句。您可以将结果复制/粘贴到SSMS窗口并执行它

select 'alter table ' + t.name + ' drop constraint ' + c.name
from sys.tables t
    inner join sys.check_constraints c on c.parent_object_id = t.object_id
where c.name like '%disallow_zero_length%'

结果如下:

alter table t1 drop constraint disallow_zero_length_1
alter table t2 drop constraint disallow_zero_length_2

只需运行结果语句。

如果这篇文章回答了你的问题,请标记为答案。