web-dev-qa-db-ja.com

SSDTでストアドプロシージャの依存関係を管理する方法

複数のストアドプロシージャがあり、一部は他に依存しています。データベースをパブリッシュするときに、依存関係の問題が原因で、一部のストアドプロシージャを作成するとエラーが表示されます。 SSDTは、必要な依存関係の順序ではなく、アルファベット順でストアドプロシージャを作成しているようです。

たとえば、sp_ProcAがsp_ProcBに依存しているとします。 SSDTは最初にsp_ProcAを作成しようとしていますが、sp_ProcBがまだ作成されていないために失敗します。

プロジェクトとスクリプトの設定を確認しました。依存関係管理に関連するものは何も見つかりませんでした。

3
Dave Mulford

SQL Serverでストアドプロシージャが作成される順序は、ほとんどの場合**、エラーを引き起こしません。依存オブジェクトがCREATE PROCEDUREまたはALTER PROCEDUREの時点で存在しない場合は、SQL Serverが依存関係をメタデータに登録できない(つまり sys .sql_expression_dependencies )。

実際のエラーが発生する場合は、特定のビルドオプションが設定されている可能性があります。 Project Propertiesに移動し、次にBuildタブに移動します。 「Transact-SQL警告をエラーとして扱う」ためのチェックボックスがあります。あなたはおそらくそれをチェックしました。他の警告をキャッチしたい場合は、オプションORのチェックを外してから、[Transact-SQL警告の抑制:]テキストフィールドに警告を指定してみてください。


**リンクサーバー/ OPENQUERY/OPENROWSETは、リンクサーバー定義を変更してLazySchemaValidationを指定しない限り、デフォルトでリモートスキーマの検証を試みます。

2
Solomon Rutzky