2013-05-28 6 views
37

VS2012にデータベースプロジェクトを作成しました。私はデータベース構造を追加しました。データベースの公開と比較には問題ありません。VS2012複数のスクリプトを参照するデプロイ後のスクリプト

公開時に、デフォルトのデータを持つ複数のテーブルを自動的に読み込みたいとします。

から生成されたINSERTステートメントで5つのスクリプトファイルを作成しました。それらは私のデータベースプロジェクトのScriptフォルダに追加されました。

次に、BuildAction=PostDeployを設定します。これは正常に動作します。何らかの理由で1つのスクリプトをPostDeployに設定することしかできません....

私はすべてのスクリプトを1つのファイルに移動できます。しかし、私はたくさんのことがあり、いくつかの順序を維持するためにそれらを別々のファイルにグループ化したいと思っています。

私はPostDeploy.sqlファイルを作成し、他のすべてのスクリプトファイルをそこから参照しようとしました。ファイルヘッダは、方向性を与える:

Post-Deployment Script Template       
---------------------------------------------------------------------------- 
This file contains SQL statements that will be appended to the build script. 
Use SQLCMD syntax to include a file in the post-deployment script. 
Example:  :r .\myfile.sql 

だから、私はファイルを書き込む:

:r .\MyScript1.sql 
:r .\MyScript2.sql 
:r .\MyScript3.sql 
:r .\MyScript4.sql 
:r .\MyScript5.sql 

ファイルが間違った構文に文句を言います。

答えて

74

Visual Studioが誤った構文の警告で私をだましてしまったことが判明しました!私のセットアップは完全に有効でした。

警告を避けるには、ファイル内の任意の場所を右クリックし、[実行設定 - SQLCMDモード]を選択します。

同じことを行うSQLCMDモードというツールバーボタンもあります。ここで

は、メニュー項目を使用すると、ツールバーのボタンを見つけることができない場合には次のとおりです。 enter image description here

+0

これは、それが構文エラーであることを考えるのTransact-SQLエディターの問題を解決します。しかし、SSDTプロジェクトはまだ構築や展開に失敗しています。 – Pat

+0

Visual Studioを完全に閉じてみます。 binおよびobjフォルダー、* .dbmdl、* .suo、および* .userファイルを削除して、SSDTソリューションを再開して、SSDTソリューションをクリーンアップします。これで、プロジェクトを構築/展開できるようになりました。 – TDN

+0

@Patエラーリストの代わりに出力ウィンドウを見てください。そこに実際のエラーが表示されます。私の場合は、私のインクルードされたファイルはパスにスペースがあり、パス全体を二重引用符で囲む必要がありました。クリーニング/再起動は必要ありません。 – sellotape

関連する問題