我有一个嵌套在其他几个存储过程中的存储过程。有没有办法告诉(在内部存储过程内)哪个是调用者?
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
答案 0 :(得分:0)
不,没有。 "堆栈"我们无法使用
你为什么需要这个?仅供参考,我将@@ PROCID传递给常见的错误记录存储过程。所以有一些用途。但是SQL中没有本地的