问题:我有一个具有 @@procid
的查询文件陈述。我想知道这个的用途和意义。我是新来的,如果它很愚蠢,对不起。
问题:在我的搜索中,this site ,我了解到它返回当前 Transact-SQL 模块的过程 id,但这是什么? “Transact-SQL 模块”是什么意思?它不应该返回某些除法的余数(here)吗?我没有得到该页面上显示的示例。
还是我误解了这一点?
最佳答案
@@procid 是与当前正在执行的存储过程、触发器或用户定义函数相关联的标识符。它是 sql server 用来跟踪系统中这些项目的内部编号。因此,使用此 id,您可以查找与之关联的对象。所以在下面的例子中:SET @ProcName = OBJECT_NAME(@@PROCID);
获取过程名称,因为 OBJECT_NAME 是一个从 @@PROCID
获取名称的函数.
这个例子有点做作,因为问题最终变成了“为什么不直接对名称进行硬编码?” @@Proc 的意义在于,如果您不知道正在执行什么(可能是动态代码等),您有一种方法可以确定在那个时间点正在执行什么,而无需在任何地方对该信息进行硬编码。
关于sql-server - @@procid 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32211442/