如何生成我的数据库脚本?

Pet*_*ete 13 database sql-server ssms

我的主要原因是跟踪我的应用程序的数据库架构更改.在SQL Server Management Studio中,我能够生成一个创建数据库的创建脚本,但它不包含任何测试数据.理想情况下,当脚本运行时,它应该删除现有数据库(假设它已经存在),然后使用包含架构更改和测试数据的新脚本重新创建它.

那么如何生成一个脚本来创建一个包含所有表,存储过程,触发器,视图,测试数据等的数据库?

我尝试过使用导入/导出功能,但这并不好,因为它似乎不会复制存储过程.另外,拥有一个脚本会很好,所以我可以使用mercurial跟踪对模式的更改.

我正在使用SQL Server Express 2008 R2和SQL Server Management Studio.

kd7*_*kd7 25

您没有提到哪个版本的SQL Server,但在SQL 2008中这很容易

SQL 2008
展开数据库
右键单击数据库
选择任务>生成脚本
生成和发布对话框将打开
选择您的对象(即表,过程等)
单击下一步在设置脚本
选项上选择高级选项
在常规下选择脚本删除和创建 - 脚本删除和创建
数据类型到脚本 - 模式和数据
关闭高级窗口
选择保存到文件.


Set*_*eno 5

我编写了一个名为SchemaZen的开源命令行实用程序来完成此任务。它比Management Studio中的脚本编写要快得多,并且输出的版本控制更加友好。它支持脚本的架构和数据。

要生成脚本,请运行:

schemazen.exe脚本--server localhost-数据库db --scriptDir c:\ somedir

然后要通过脚本重新创建数据库,请运行:

schemazen.exe创建--server本地主机-数据库db --scriptDir c:\ somedir