@@ procid是什么意思?

Lup*_*iyo 3 t-sql sql-server

问题:我有一个包含@@procid语句的查询文件.我想知道这个的用途和含义.我是新手,对不起,如果它很傻.

问题:在我的搜索中,在这个网站上,我了解到它返回了当前Transact-SQL模块的过程ID,但是这是什么?"Transact-SQL模块"是什么意思?它不应该返回某些分区的剩余部分(这里)?我没有得到该页面上显示的示例.

还是我误解了这个?

kem*_*002 10

@@ procid是与当前执行的存储过程,触发器或用户定义的函数关联的标识符.它是一个内部编号sql server用于跟踪系统中的这些项目.因此,使用此ID,您可以查找与其关联的对象.所以在下面的例子中:

SET @ProcName = OBJECT_NAME(@@PROCID);

获取过程名称,因为OBJECT_NAME是一个从中获取名称的函数@@PROCID.

这个例子有点人为,因为这个问题最终变成了"为什么不只是硬编码这个名字?" @@ Proc的要点是,如果您不知道正在执行什么(可能是动态代码等),您可以通过某种方式确定当时正在执行的内容,而无需在任何地方对该信息进行硬编码.