问题:我的查询文件有@@procid
语句。我想知道这个的用途和含义。我是新手,对不起,如果它很傻。
问题:在this site上的搜索中,我了解到它返回了当前Transact-SQL模块的过程ID,但是这是什么? “Transact-SQL模块”是什么意思?它不应该返回某个除法的余数(here)?我没有得到该页面上显示的示例。
或者我误解了这个?
答案 0 :(得分:8)
@@ procid是与当前执行的存储过程,触发器或用户定义的函数关联的标识符。它是一个内部编号sql server用于跟踪系统中的这些项目。因此,使用此ID,您可以查找与其关联的对象。所以在下面的例子中:
SET @ProcName = OBJECT_NAME(@@PROCID);
获取过程名称,因为OBJECT_NAME是一个从@@PROCID
获取名称的函数。
这个例子有点人为,因为这个问题最终变成了“为什么不对这个名称进行硬编码?”#39; @@ Proc的要点是,如果您不知道正在执行的是什么(可能是动态代码等),您可以通过某种方式确定该时间点正在执行的内容,而无需对该信息进行硬编码到处。
答案 1 :(得分:1)