sql-server - @@procid 是什么意思?

标签 sql-server tsql

问题:我有一个具有 @@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/

相关文章:

sql-server - 使用 T-SQL 查询文件系统文件夹

SQL 获取 10 个最大的数字

sql - 如何将具有任何列的值表复制到具有一列的其他表

sql-server - where 子句中的最佳搜索字符串

c# - 设计用于存储食物食谱的数据库

c# - Entity Framework 5 查询中的错误数据类型

sql - 在 C 应用程序中使用存储过程而不是 SQL 语句更好吗?

SQL 从表中选择 - 仅包含特定文件组中的数据

c# - 将sql表中的xml字符串转换为动态列

c# - 学习如何使用 SQLXML 数据类型