@@procid是与当前执行的存储过程、触发器或用户定义函数相关联的标识符。它是SQL Server用于在系统中跟踪这些项的内部编号。因此,通过此id,您可以查找与其关联的对象。因此,在以下示例中:
SET @ProcName = OBJECT_NAME(@@PROCID);
获取过程名称,因为OBJECT_NAME是一个函数,从@@PROCID
获取名称。
这个例子有点牵强,因为最终问题变成了“为什么不直接硬编码名称?” @@Proc的重点在于,如果您不知道正在执行什么(例如动态代码等),则可以确定此时正在执行什么而无需在各处硬编码该信息。