有没有简单的方法来删除SQL数据库的所有默认值?

时间:2009-11-07 12:19:55

标签: sql-server sql-server-2005 sql-server-2008

我想删除在特定数据库中设置的所有默认值,是否有可以运行的脚本为数据库中的所有表执行此操作?没有任何帮助可能会有点耗费时间!

2 个答案:

答案 0 :(得分:5)

如果您使用的是SQL Server 2005及更高版本,则可以使用此脚本创建另一个脚本,然后删除所有默认约束:

SELECT 
    'ALTER TABLE dbo.' + OBJECT_NAME(parent_object_id) + 
    ' DROP CONSTRAINT ' + Name
FROM
    sys.default_constraints

这将创建一系列语句作为输出,例如

ALTER TABLE dbo.YourTable DROP CONSTRAINT DF_T_YourColumn

将输出复制到另一个SQL Server Management Studio查询窗口并执行它,您应该完成了!

马克

答案 1 :(得分:3)

您可以生成一个脚本来删除所有默认约束:

SELECT 'alter table ' + object_name(parent_object_id) + 
    ' drop constraint ' + name
FROM sys.objects
WHERE type = 'D'