Visual Studioのデータベースプロジェクトからスクリプトを実行する
-
10-07-2019 - |
質問
Visual Studioでビルドプロセスにストアドプロシージャを追加しようとしています(MSBuildを使用)。
ソリューションにデータベースプロジェクト(* .dbp)を追加しましたが、VSで利用可能な他のデータベースプロジェクトの一部とは異なり、ビルドまたは実行できません。 (これは、SQL2000を使用しているときに必要なプロジェクトファイルだと思います)
プロジェクトをビルドするときにSQLスクリプトを実行するにはどうすればよいですか? スクリプトを実行するには、右クリックして[実行]を押します。
解決
データベースプロジェクトは、通常のプロジェクトのようには構築されません。このプロジェクト内でスクリプトを実行する場合、MSBuild互換の関連プロジェクト(csproj、vbprojなど)を拡張し、選択したツールを使用してそこからスクリプトを参照/実行することをお勧めします。
実装方法はユーザー次第です。たとえば、 BeforeBuild は、 SqlExecute タスクを使用してスクリプトをターゲットおよび実行します。
FWIW、SQL Server 2000、2005、2008+をサポートする必要があるため、タスクはさらに難しくなります。 NVarchar(max)(2005+)vs NText(2000+)に加えて、バージョン間のすべてのsp名前変更などを考えてください。また、開発者、QA、インストーラーが一貫性を確保するために使用する単一のスクリプトが必要でした。したがって、私たちのアプローチは、スクリプト内でトークン/キーワードの置換を可能にするカスタムツールであり、異なるSQL Serverバージョンとお客様のインストール(ユーザー/ログインの詳細、データベース名など)の間の柔軟性、およびスクリプトを実行できるさまざまなテクノロジーへの統合を提供しますコマンドライン、MSBuild、Wixプロジェクトを使用したMSIカスタムアクション、またはそれらの実行に必要なもの。
他のヒント
データベースプロジェクトをビルドできます。
これらは実行できません-展開できます。
デプロイすると、プロジェクトがビルドされてからデプロイされます。コードは、ビルド前およびビルド後のスクリプトと、デプロイ前およびデプロイ後のスクリプトとともにデプロイされます。
プロジェクトをビルドするときにスクリプトを実行する場合は、プロジェクトプロパティのビルドイベントでビルド前とビルド後を確認します。