2011-01-05 9 views
0

ストアドプロシージャに渡されるパラメータのコンパイル時検証を取得する方法を知っている人はいませんか。例Proc1がProc2を呼び出すが、Proc2に無効なパラメータ名を指定した場合。現在、私は実行時に見つけます。 Proc1をいつ作成するのかを知る方法はありますか?SQL Serverストアドプロシージャコンパイル時の検証

おかげで多くの、 トム

答えて

0

ことはできません。あなたが与えるシナリオのために。

エラーを検出する唯一の方法は、実行することです。明らかに、これらのテストをロールバックして自動化するトランザクションで実行できます。

+0

ありがとうございました。あなたは問題を正確に理解しています。ストアドプロシージャごとにexecute文を書く必要があるため、トランザクション内であっても実行する必要はありません。それが不可能であることは確かですか?私は別のツールがVisual Studioなどの検証を行ったとは思っていましたが、わかりません。彼らが実際にそうするなら、私は別のツールがそれをどうやって行うのだろうと思う。私はすべてのprocsをループし、それぞれをトランザクションで呼び出すためのアプリを書くかもしれません。 – Thomas

+0

@トーマス - ここで説明したように、 'SET NOEXEC ON'と' SET PARSEONLY ON'を試しました。http://stackoverflow.com/questions/3084387/how-can-i-programmatically-check-parse-the-validity-of- a-tsql-ステートメントといずれのエラーも私の結論を与えた。私はSSMS intellisenseが '@bは手続きfooのパラメータではありません。私はそこでやっているチェックを活用する方法があるかどうかはわかりません。さらに、 'SET FMTONLY ON exec dbo.bar'を実行すると、エラーメッセージが返されます。 –

関連する問題