以编程方式为数据库中的所有对象生成脚本

对于为使用Microsoft SQL Server的应用程序生成设置的自动安装版本,我目前正在评估是否可以执行以下操作:

我想以编程方式(CMD脚本或C#代码)在可从Microsoft SQL Server Management Studio 2008访问的数据库上执行“ 生成脚本 ”function。

即调用一些代码并将指定数据库的所有对象(表,SP,约束等)作为SQL脚本。

目前,我只需要结构,而不是数据。

问题 :是否有可能实现这一目标?

我编写了SMOscript ,一个命令行工具,可以将所有对象编写为单个文件,或者编写所有对象的文件。

MSSQL的Generate Scripts函数通常不考虑引用和依赖关系来确定对象的序列(至少在2000和2005的情况下)

我使用http://www.codeplex.com/ScriptDB非常成功。

您应该能够使用SMO在托管代码中执行此操作

您可以在sysobjects视图上调用标准select子句(例如,使用ADO.NET)。

微软还发布了一个名为“mssql-scripter”的工具。 它可以在这里找到: mssql-scripter