1

他のいくつかのストアドプロシージャにネストされているストアドプロシージャがあります。(内部ストアドプロシージャ内で)呼び出し元を特定する方法はありますか?

CREATE PROC int_proc 
AS

SELECT int_name = OBJECT_NAME(@@PROCID)
      ,ext_name = 'How can I tell which is the ext_proc name?'
      ,nestlevel = @@NESTLEVEL

GO
CREATE PROC ext_proc1
AS
SELECT ext_name = OBJECT_NAME(@@PROCID),nestlevel = @@NESTLEVEL
EXECUTE int_proc

GO
CREATE PROC ext_proc2
AS
SELECT ext_name = OBJECT_NAME(@@PROCID),nestlevel = @@NESTLEVEL
EXECUTE int_proc

GO

EXEC ext_proc1
EXEC ext_proc2

SQL-Server2005を使用しています

4

1 に答える 1

0

いいえ、ありません。「スタック」は利用できません

なぜこれが必要なのですか?参考までに、@@PROCIDを一般的なエラーロギングストアドプロシージャに渡します。したがって、これにはいくつかの用途があります。しかし、SQLにはネイティブではありません

于 2012-09-05T14:34:00.073 に答える