2011-11-01 68 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

相關問題