7

Visual Studio2012とUpdate1、およびSSDTを使用して、VisualStudio2012の「データベースプロジェクト」システムを学習しています。

私は、データベースの実際の問題、特に、誰かがデータベーステーブルからフィールドを削除したが、すべてのストアドプロシージャがエラーなしで実行されることを確認しなかった、ストアドプロシージャのプログラミングエラーを見つけるのに非常に優れていると感じています。そのため、VisualStudio2012の「build」コマンドを使用した.sqlスクリプトの検証は非常に便利です。私はそれを放棄するのは嫌だ。

ただし、ストアドプロシージャで#TEMPTABLEを使用する場合は常に、[拡張Transact-共通オブジェクトのSQL検証を有効にする]をオフにしても、ストアドプロシージャの#temptable.field参照に関連する「ビルドエラー」が発生することにも注意してください。

データベースプロジェクトは、一時テーブルのスキーマを決定するためにどのような手順を実行しますか?定義上、一時テーブルはメインスキーマに存在しないため、データベースを作成した直後に、[データベースのインポート]オプションを使用して実際の本番SQLデータベースをVisual Studioにインポートしたときに、データベースプロジェクトに一時テーブルが入りませんでした。

「#TEMPTABLE.SQL」ファイルを作成してプロジェクトに追加する必要がありますか?

サンプルエラー:

c:\dev\...\dbo\Stored Procedures\xyz.sql(95,96): Warning:  SQL71502: Procedure: [dbo].[proc123] has an unresolved reference to object [#temptable1].[somefield1].

一度使用したtemptablesを定義するスクリプトを含め、T-SQLを完全に検証する必要がある場合、およびTurningの場合は、これらについて知る必要があるさまざまな場所に含める方法があれば、それで問題ありません。拡張検証の結果は、私が想定していることを実行しました。その場合、おそらく何も必要ありません。

フォーラムの投稿によると、これを修正することは不可能であり、私にできることは、ファイルレベルでこの警告を効果的にオフにすることだけであり、これは恐ろしいことです。

これと同じテーマに関する質問ですが、Visual Studio 2010の場合、これはこのテクノロジが完全に機能しなくなった領域であり、Microsoftはこれについて何年も前から知っていて、何もしていません。VS2012.U1 + SSDT_Dec2012で今より良いものはありますか?

4

1 に答える 1

3

これは一時テーブルの問題です。テーブル値関数を使用する必要があります。

于 2013-09-29T16:22:25.943 に答える