web-dev-qa-db-ja.com

SQL Server SSDTでいくつかの警告を抑制します

SQL Server Data Tools で、SQL71502の発生をすべてではなく一部だけ抑制したいと思います( "---にはオブジェクトへの未解決の参照---"があります)。プロジェクトのプロパティ、ビルド、Transact-SQL警告の抑制を通じて抑制できることはわかっていますが、これはグローバルに抑制されます。これはできますか?

33
Jason Kresowaty

抑制される71502メッセージと抑制されないメッセージを決定するものについては明確ではありませんでしたが、私の理解と調査に基づいて、答えは同じだと思います。つまり、いいえ。

すべての警告、または特定のコード(71502)に基づく警告を抑制できますが、これは可能な限り詳細です。

http://msdn.Microsoft.com/en-us/library/hh272681(v = VS.103).aspx

このリンクは、警告をエラーにプロモートすることについて説明していますが、抑制フィルターの使用方法も示しています。

http://social.msdn.Microsoft.com/Forums/is/ssdt/thread/9b698de1-9f6d-4e51-8c73-93c57355e768

7
RThomas

必要に応じて、警告を生成するコードを含む個々のファイルレベルでそれを抑制することができます。このようなもの。

<Build Include="Stored Procedures\X.sql">
    <SuppressTSqlWarnings>71502</SuppressTSqlWarnings>
</Build>
49
Varun

Sprocのように、オブジェクト/ファイルレベルでこれを実行しようとしているようです。

これが必要な粒度のレベルである場合、プロジェクトを開いた状態でオブジェクトを選択すると、プロパティにTSql警告を抑制するオプションがあり、71502と入力すればそれで十分です。

オブジェクトに関する他の警告は引き続き発生します-他のオブジェクトの71502警告も同様です。

7
Mad-Genius

警告がストアドプロシージャから発生している場合は、sprocプロパティの[Suppress TSql警告]セクションに警告の番号部分(必要に応じてカンマ区切り)を追加して、特定のsprocに抑制を設定できます。

2
nicky

すでに述べたように、オブジェクトレベルでは、警告/エラーの発生をすべて無視することができます。オブジェクト内で発生する可能性のない特定の警告の発生のみを無視する場合。

私もあなたを助けるかもしれない回避策を見つけました。

私の場合、 "select * into ..."ステートメントによって作成されたストアドプロシージャ内のテーブルを参照していますが、Visual Studioはこの新しいテーブルの後続の参照を処理できず、SQL71502警告がたくさん表示されます。 SP以下の上部に作成したVSをだますために:

IF 1=2 CREATE mytable(...)

そうすることで、VSはすべての参照を検証できますが、if句の条件が常にfalseであるため、SPに悪影響はありません。必要に応じて、CREATEステートメントを更新することを覚えておいてください。

1
Paul_S