为SQL生成主脚本的最佳方法

为SQL生成主脚本的最佳方法,sql,sql-server-2005,tsql,Sql,Sql Server 2005,Tsql,我想将特定的数据库表和存储过程提取到一个主脚本中。你知道有什么软件可以帮助我更快地完成这项工作吗?我尝试过使用SQL数据库发布工具,但效率不高,因为我没有选择它的收集表。在SQL Server 2005中,右键单击数据库,然后选择任务,然后选择生成脚本 正如在该链接中提到的,我相当确定您必须分别生成DROP和CREATE语句。我使用DROP和CREATE语句(通过与空数据库进行比较),以及在我的所有数据库版本之间进行升级(我为每个发布的版本保存一份DB副本,然后在当前版本和以前版本之间进行比较

我想将特定的数据库表和存储过程提取到一个主脚本中。你知道有什么软件可以帮助我更快地完成这项工作吗?我尝试过使用SQL数据库发布工具,但效率不高,因为我没有选择它的收集表。

在SQL Server 2005中,右键单击数据库,然后选择任务,然后选择生成脚本

正如在该链接中提到的,我相当确定您必须分别生成DROP和CREATE语句。

我使用DROP和CREATE语句(通过与空数据库进行比较),以及在我的所有数据库版本之间进行升级(我为每个发布的版本保存一份DB副本,然后在当前版本和以前版本之间进行比较,以获得该版本的更改脚本)

我发现“生成脚本”在某些情况下对依赖项做得很糟糕-例如,它会尝试在创建表之前创建一个使用表的存储过程,导致脚本失败。我承认我可能用错了,但SQL Compare“刚好有效”。它生成的脚本也包含在一个事务中——因此,如果出现故障,整个更改将回滚。您不会得到一个半填充或半升级的数据库

缺点是,这是一个商业工具,但我认为这是值得的。

试试dbourcetools。
它是开源的,专门设计用于为数据库编写脚本—表、视图、进程到磁盘。

它还允许您选择要编写脚本的表、视图和数据库对象。

你好,米奇,谢谢。但我已经知道如何做到这一点,我正在寻找一种自动方法,在一个文档/主脚本中生成语句。