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

Posted

技术标签:

【中文标题】如何以编程方式创建“数据库创建脚本”?【英文标题】:How to programmatically create a 'database create script'? 【发布时间】: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"

【问题讨论】:

在我的谷歌搜索中排名第三:***.com/questions/12140422/… Generating sql code programtically的可能重复 【参考方案1】:

不确定您所说的以编程方式是什么意思,但是您上面提到的生成脚本应该可以完成这项工作。我将创建脚本来重新创建您的数据库及其架构,其中没有任何数据。

【讨论】:

以上是关于如何以编程方式创建“数据库创建脚本”?的主要内容,如果未能解决你的问题,请参考以下文章

核心数据:如何保存以编程方式创建的对象数据模型

如何以编程方式生成基于数据框的创建表语句

如何在核心数据中以编程方式创建超类/子类?

如何以特定格式以编程方式创建pdf?

Delphi:如何以编程方式创建 Firebird 数据库

运行带约束的数据库创建脚本