【发布时间】:2014-03-13 10:31:02
【问题描述】:
问题
在 SQL Server Manager 2008/2012 中,可以创建现有数据库的完整克隆。
有没有办法以编程方式生成这种脚本?强>
[数据库] -> 右键 -> 任务 -> 生成脚本
我尝试过的
我已经尝试以编程方式重新创建我的数据库并从所有表中删除所有行。但似乎不可能禁用所有外键约束。我在 SO 上发现了一些脚本,它们可以删除和重新创建约束但它们不适用于集群约束。
-- disable trigger / fk constraints
EXEC sp_MSForEachTable "ALTER TABLE ? DISABLE TRIGGER ALL"
EXEC sp_MSForEachTable "ALTER TABLE ? NOCHECK CONSTRAINT ALL"
-- truncate all tables
EXEC sp_MSForEachTable "DELETE FROM ?"
-- enable trigger / constraints
EXEC sp_MSForEachTable "ALTER TABLE ? ENABLE TRIGGER ALL"
EXEC sp_MSForEachTable "ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL"
【问题讨论】:
-
在我的谷歌搜索中排名第三:stackoverflow.com/questions/12140422/…
标签: sql-server-2008 tsql sql-server-2012