0

Visual Studio 2010 の新しい SQL Server データベース プロジェクトがとても気に入っています。配置プロパティの [ターゲット データベースにあるが、データベース プロジェクトにはないオブジェクトに対して DROP ステートメントを生成する] オプションを使用することも気に入っています。

ただし、このインターフェイスを使用してストアド プロシージャと関数を管理したくありません。そのための別のツールがあります。ビルドとデプロイを行うたびに、VS は、外部プログラムで作成したストアド プロシージャをドロップします。基本的に、ストアド プロシージャと関数を「無視」したいと思います。

SQL Server データベース プロジェクトを構築するときに、ストアド プロシージャと関数を無視する方法はありますか?

ストアド プロシージャと関数に外部ツールを使用したい場合、[ Generate DROP statement... ] オプションを使用できません。

4

1 に答える 1

2

VSDB は、プロシージャと関数の定義をプレーンな SQL ファイルに格納します。私の推奨事項は、「他のツール」でプロシージャと関数を SQL ファイルとして直接 VSDB プロジェクトにドロップし、VS DB プロジェクトをビルドしてデプロイすることですこのようにして、VS DB ビルドがそれらを検証するため、プロシージャと関数をスキーマに対して無料でチェックできます。
さらに良いことに、VS DB ソリューションのビルド中のカスタム ビルド ステップの一部として、「他のツール」で SQL 定義を作成します。

おそらく「他のツール」が協力しない可能性が高く、その出力をデータベースに直接展開したい(つまり、接続してプロシージャを作成する)ことはないことを理解していますが、代わりにSQLファイルを生成するように変更できる場合は、価値がありますVS DB との統合を追求し、均一な展開を行います。

VS DB にプロシージャと関数を「無視」させると動作する可能性がありますが、VS DB がテーブルなどの新しいスキーマを展開するときに、それらを削除して再作成し、「他のもの」からの依存関係を壊す可能性があるため、あらゆる種類の問題に遭遇する可能性があります。ツールの手順と機能、必要なアクセス権を壊し、他に何を知っているか。SCHEMABINDING を使用する関数が 1 つしかない場合は、VS DB の展開が完全に妨げられることは言うまでもありません。また、スカラー関数は通常、スプールを防ぐために SCHEMABINDING を必要とするため...

于 2010-05-25T22:45:47.650 に答える