2011-11-01 23 views
6

別々のテーブル作成スクリプトを別々に保存し、別々に保存したいと考えています。スクリプト内からスクリプトを実行するMicrosoft SQL Server Management Studio

データベース全体を構築するには、テーブル内のすべての外部キーが正しい順序で作成されるようにすべてのスクリプトを順番に呼び出すmaster .sqlファイルが必要です。

これで、テーブル構造全体を逆の順序で削除するスクリプトを作成することもできます。

これを行う方法はありますか?

答えて

13

あいまいr: SQLCMDコマンド使用:

を:R <ファイル名>

は、ステートメント・キャッシュにで指定されたファイルから追加のTransact-SQLステートメントとsqlcmdのコマンドを解析します。

、ファイルの.sqlご主人のようなものになるだろう、あなたのスクリプトがcreateT1.sqlcreateT2.sqlある作成言ってやる:限り、あなたはSQLCMDモードを有効にすると、Editing SQLCMD Scripts with Query Editorを参照してください、この構文は、同様SSMSで動作

create database foo; 
go 

use foo; 
go 

:r createT1.sql 
:r createT2.sql 
go 

。また、dbutilsqlcmdライブラリは、アプリケーションにこれを埋め込みたい場合は、:r拡張子をサポートしています。

3

私は最も簡単な方法は、マスターバッチファイルを持っているだろう、とそのバッチファイル内で使用すると、順次(* .SQL)スクリプトファイルのすべてにsqlcmdを呼び出すことができると思います。ここで

がこれを行う方法についての良い参考です:あなたは右のあなたの質問のタイトルにSSMSを入れているのでhttp://www.mssqltips.com/sqlservertip/1543/using-sqlcmd-to-execute-multiple-sql-server-scripts/

1

を、私はあなたがそこからこれを行うことができるようにしたいと仮定するつもりです。

SSMSはSQLCMDモードで実行できます。これにより、より柔軟な柔軟性が得られます。 hereのデモを見るか、Microsoft's websiteの詳細をご覧ください。

単純なコマンドライン機能の場合、私は個人的にPowershellスクリプトを使用します。 Microsoft SQLコマンドレットを追加すると、SQL Serverに接続したり、SMOで自分自身をロールバックしたり、オープンソースのSQLPSXなどのサードパーティのソリューションを使用したりすることができます。

+0

すごいこれらの回答はすごく素晴らしいものでした。すべての返信がこの良いhahaha ^であるならば、間違いなくここにたくさん投稿されます。^ – chilleo

関連する問題