脚本内我希望能有一堆保存,并单独存储不同的创建表的脚本。的Microsoft SQL Server Management Studio中运行一个脚本
来构建整个数据库,我想有一个调用,以便使所有表中的外键都按正确的顺序创建的所有脚本主.sql文件。
然后我可以也使脚本通过删除他们都以相反的顺序删除整个表结构。
有没有办法做到这一点?
脚本内我希望能有一堆保存,并单独存储不同的创建表的脚本。的Microsoft SQL Server Management Studio中运行一个脚本
来构建整个数据库,我想有一个调用,以便使所有表中的外键都按正确的顺序创建的所有脚本主.sql文件。
然后我可以也使脚本通过删除他们都以相反的顺序删除整个表结构。
有没有办法做到这一点?
使用晦涩r:
SQLCMD命令:
,R <文件名>
解析额外的Transact-SQL语句,并通过到语句缓存指定的文件SQLCMD命令。
假设你创建脚本createT1.sql
和createT2.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
扩展。
我认为最简单的办法是有一个主批文件,该批处理文件里面,你可以调用sqlcmd
所有脚本文件(* .SQL)顺序。
下面是关于如何做到这一点的好参考:http://www.mssqltips.com/sqlservertip/1543/using-sqlcmd-to-execute-multiple-sql-server-scripts/
既然你把SSMS就在你的问题的标题,我会假设你希望能在那里做到这一点。
可以在SQLCMD模式下运行SSMS。这应该给你更多的灵活性。您可以看到它的快速演示here或在Microsoft's website上查找更多信息。
对于简单的命令行功能,我会亲自去了PowerShell脚本。您可以在Microsoft SQL cmdlet中添加以允许连接到SQL Server,也可以使用SMO推出自己的产品或使用第三方解决方案(如开源SQLPSX)。
哇,这些答案都是梦幻般谢谢大家非常感谢!肯定会在这里张贴很多,如果所有的回复是这个好hahaha ^。^ – chilleo