4

データベースのスキーマのソース管理には、VisualStudioデータベースプロジェクトを使用します。また、データベースから特定のデータ(構成値など)をスクリプト化する必要があるため、カスタムコマンドラインユーティリティを使用して、データを挿入スクリプトにダンプします。1つのファイルは、1つのテーブルのスクリプトデータを表します。

デプロイメント後スクリプトと呼ばれる特定のSQLスクリプトがあります。これは、プロジェクトのデプロイコマンドの後に自動的に実行されます。ここで他のスクリプトファイルをリンクすることをお勧めします。データ挿入スクリプトをリンクしたいと思います。

このコマンドを使用して任意のファイルから解析するように指示されています

SQLCMD :r <filename>

問題は、:rコマンドの開始ディレクトリがdevenv.exe(VS dev。env。)のある場所であるため、同僚がソース管理からダウンロードしたときにどのように使用できるかわからないことです。 。

適切なツールを使用して、適切な角度からデータをスクリプト化するという問題に取り組んでいますか?その場合、実行中の展開後スクリプトファイルのパスを取得するにはどうすればよいですか、または展開後スクリプトにパスをハードコーディングせずに挿入スクリプトを解析するにはどうすればよいですか?

4

1 に答える 1

5

結局のところ、スクリプト ファイルへの相対パスを指定するだけで十分です。devenv.exe の場所を開始ディレクトリとして使用して、:r の後のパスを評価する Visual Studio の Validate SQL Syntax 機能に惑わされました。

ただし、プロジェクトで Deploy を実行すると、:r コマンドはスクリプトのディレクトリを開始ディレクトリとして使用するため、相対パスを使用してファイルの場所を簡単に指定できます。

于 2009-03-10T12:18:13.207 に答える