MS/Transact-SQL存储过程可以查找自己的名称吗?

DKM*_*ine 14 t-sql sql-server

在存储过程中是否有任何方法可以引用它自己的名称?假设我希望它打印自己的名称,但不需要在存储过程中对名称进行硬编码.是否有任何欺骗方式从程序本身获取名称或ID而不使用实际名称来查找信息?

Dav*_*d M 35

尝试:

SELECT OBJECT_NAME(@@PROCID)
Run Code Online (Sandbox Code Playgroud)

@@ PROCID返回当前SQL模块的对象ID.OBJECT_NAME会将对象ID转换为其名称.两者都可以从SQL Server的至少版本7到2008中获得.


Bin*_*ier 16

您正在寻找@@ PROCID和OBJECT_NAME ie

select @procName=OBJECT_NAME(@@PROCID)
Run Code Online (Sandbox Code Playgroud)