繁体   English   中英

在SQL Server数据库中为键,约束生成drop-create sql脚本

[英]Generate drop- create sql scripts for keys, constraints in sql server database

我需要为SQL Server数据库中的所有键和约束生成拖放并创建脚本。 本练习旨在为目标环境中的数据库生成升级脚本。 我有脚本,但是它失败了,因为我需要找到正确的数据库对象顺序,例如父级,子级表,才能创建它们。 例如,要创建/删除索引,基本上,我使用以下查询来捕获索引

'SELECT object_name(si.object_id)
,si.object_id
,si.NAME
,si.index_id
FROM sys.indexes si
LEFT JOIN information_schema.table_constraints tc ON si.NAME = tc.constraint_name AND object_name(si.object_id) = tc.table_name
WHERE objectproperty(si.object_id, 'IsUserTable') = 1    
ORDER BY object_name(si.object_id)
,si.index_id'

让我们知道如何包含索引的顺序/级别。 同样需要在生成脚本时确保主要的,外部的约束。

您能告诉我什么是正确的捕获方法吗?

如果已准备好所有FK等,则可以使用sys.dependencies找出正确的顺序。 一种懒惰的方法是仅继续运行脚本,它们最终将全部成功。 例如,如果创建表1依赖于表2,则第一次运行表2时将创建表2,而第二次创建表1。 很容易编写脚本...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM