2011-05-24 80 views

回答

3

这将让你在数据库中的所有约束,你可以通过你所需要的过滤它:

我想你可能还需要看看任何指标,统计等也可能阻止你丢掉专栏。

+0

你可以让我知道,用于生成所有约束创建脚本的确切脚本? – 2011-05-24 19:07:59

1

这可以从SQL Server Management Studio轻松完成。在数据库上

右键单击并转到任务生成脚本...

这将产生一个脚本生成向导,它将为您选择的任何模式构造生成DROP和CREATE脚本。

选择数据库

确保您选择脚本拖动到真

选择表

选择新建查询编辑器窗口,然后单击Finish。

+0

你能让我知道确切的步骤来生成只有约束,而不是表脚本? – 2011-05-24 19:07:23

+0

工具>选项> sql server对象资源管理器>关闭除约束以外的所有内容>生成它们>将所有内容都恢复回 – Fourth 2011-05-24 19:08:55

+2

使用屏幕上的选项生成创建表脚本,我只需要脚本约束。 – 2011-05-25 07:25:30

1

您可以使用SMO编程这样的事情,或者更简单的是只使用SSMS中的脚本向导。在对象资源管理器中转到数据库并右键单击它。选择任务 - >生成脚本(不是“脚本数据库”)。在向导中,您可以确保约束是脚本化的,并删除其他项目。检查生成的脚本并确保它能够满足您的需求。如果没有,再次通过向导进行必要的调整。

2
SELECT top 1 
    'ALTER TABLE dbo.' + OBJECT_NAME(parent_object_id) + 
    ' ADD CONSTRAINT ' + dc.name + ' DEFAULT(' + definition 
    + ') FOR ' + c.name 
FROM sys.default_constraints dc 
INNER JOIN sys.columns c ON dc.parent_object_id = c.object_id AND dc.parent_column_id = c.column_id 

脚本生成的所有约束

SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS 

得到数据库中的所有约束条件,然后在你的桌子过滤