是否可以在MS SQL Server中獲取當前存儲過程的名稱?可能是有任何系統變量或功能像GETDATE()
?當前正在執行的過程名稱
回答
你可以試試這個:
SELECT OBJECT_NAME(@@PROCID)
更新:這個命令仍然是SQL Server上有效的2016年
返回對象標識符( ID) 當前的Transact-SQL模塊。 A Transact-SQL模塊可以是存儲的 過程,用戶定義的函數或 觸發器。
OBJECT_SCHEMA_NAME(@@PROCID) + '.' + OBJECT_NAME(@@PROCID)
+1模式很重要。 – 2014-10-07 21:25:02
如果您在臨時Proc中使用它,它會返回NULL,無論是否檢索模式名稱。第一PROC是 「正常的」,第二是溫度,在該代碼:'BEGIN TRAN GO CREATE PROC utility.TempProc AS SELECT OBJECT_SCHEMA_NAME(@@ PROCID)+ + OBJECT_NAME(@@ PROCID) GO '。 EXEC utility.TempProc GO ROLLBACK GO BEGIN TRAN GO CREATE PROC效用。#TempProc AS SELECT OBJECT_SCHEMA_NAME(@@ PROCID)+ '' + OBJECT_NAME(@@ PROCID) GO EXEC效用。# TempProc GO ROLLBACK GO' – SAinCA 2016-08-04 22:14:23
在你有興趣在當前正在執行的臨時存儲過程的名稱,其中的特定情況下,可以通過得到它:
select name
from tempdb.sys.procedures
where object_id = @@procid
它還SQL Express的2008 R2工作? – gbbosmiya 2013-11-20 06:29:00
是的,它的確如此:http://technet.microsoft.com/en-us/library/ms174408.aspx – 2013-11-21 15:19:08
值得注意的是,返回的值是SYSNAME類型。 – Buggieboy 2015-04-29 14:18:18