2011-11-01 34 views
6

脚本内我希望能有一堆保存,并单独存储不同的创建表的脚本。的Microsoft SQL Server Management Studio中运行一个脚本

来构建整个数据库,我想有一个调用,以便使所有表中的外键都按正确的顺序创建的所有脚本主.sql文件。

然后我可以也使脚本通过删除他们都以相反的顺序删除整个表结构。

有没有办法做到这一点?

回答

13

使用晦涩r: SQLCMD命令:

,R <文件名>

解析额外的Transact-SQL语句,并通过到语句缓存指定的文件SQLCMD命令。

假设你创建脚本createT1.sqlcreateT2.sql那么你的主.sql文件会是这样的:

create database foo; 
go 

use foo; 
go 

:r createT1.sql 
:r createT2.sql 
go 

这句法在SSMS工作为好,只要你启用SQLCMD模式,请参阅Editing SQLCMD Scripts with Query Editor 。如果您想将其嵌入到应用程序中,dbutilsqlcmd库也支持:r扩展。

1

既然你把SSMS就在你的问题的标题,我会假设你希望能在那里做到这一点。

可以在SQLCMD模式下运行SSMS。这应该给你更多的灵活性。您可以看到它的快速演示here或在Microsoft's website上查找更多信息。

对于简单的命令行功能,我会亲自去了PowerShell脚本。您可以在Microsoft SQL cmdlet中添加以允许连接到SQL Server,也可以使用SMO推出自己的产品或使用第三方解决方案(如开源SQLPSX)。

+0

哇,这些答案都是梦幻般谢谢大家非常感谢!肯定会在这里张贴很多,如果所有的回复是这个好hahaha ^。^ – chilleo

相关问题