调用存储过程的名称,@@ nestlevel = 1

时间:2012-09-05 14:31:07

标签: sql-server-2005

我有一个嵌套在其他几个存储过程中的存储过程。有没有办法告诉(在内部存储过程内)哪个是调用者?

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-Server 2005

1 个答案:

答案 0 :(得分:0)

不,没有。 "堆栈"我们无法使用

你为什么需要这个?仅供参考,我将@@ PROCID传递给常见的错误记录存储过程。所以有一些用途。但是SQL中没有本地的