2017-07-13 15 views
5

誰かが作成した古いレポートでメンテナンスを行っています。レポートのデータソースがストアドプロシージャであることがわかりました。 sproc呼び出しは次のようになります。"; 1" MS SQLでストアドプロシージャを呼び出した後?

EXEC someStoredProc;1 

これまで「1」は見たことがありません。ちょうどそれが何であるかちょっと好奇心?オンラインでドキュメントを見つけることができません。 "1"を他の数値に切り替えると、SQLは "ストアドプロシージャ 'someStoredProc'を見つけることができないというエラーをスローします。しかし、それを "1"に戻すと動作します。出力に影響を与えていないようです。これはなんですか?

私は "; 1"を任意のストアドプロシージャの後に置くことができ、それがなくても一見同じように実行することに気付きました。

誰でも私にこの謎を解くことができれば - ありがとう!

答えて

5

これらはdeprecated since 2005(それでも多少SQL Server 2012を介してサポートされている)となっているNumbered Procedures、として知られている

SQL Serverでは、;#接尾辞を持つストアドプロシージャの異なるバージョンを作成することができます。これらは一般に、ストアドプロシージャのオーバーロードに使用することも、異なる数のパラメータを受け入れるか、または異なる動作をする別のバージョンを作成することによっても使用できます。

関連する問題