腳本內我希望能有一堆保存,並單獨存儲不同的創建表的腳本。的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