如何以编程方式创建“数据库创建脚本”?

时间:2014-03-13 10:31:03

标签: sql-server-2008 tsql sql-server-2012

问题

在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"

1 个答案:

答案 0 :(得分:0)

不确定您的编程方式是什么意思,但上面提到的Generate脚本应该可以胜任。我将创建脚本来重新创建数据库及其架构,而不包含任何数据。