@@PROCID (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

返回当前 Transact-SQL 模块的对象标识符 (ID)。 Transact-SQL 模块可以是存储过程、用户定义函数或触发器。 不能在 CLR 模块或进程内数据访问接口中指定 @@PROCID。

Transact-SQL 语法约定

语法

@@PROCID  

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

返回类型

int

示例

以下示例使用 @@PROCID 作为 OBJECT_NAME 函数中的输入参数,在 RAISERROR 消息中返回存储过程的名称。

USE AdventureWorks2022;  
GO  
IF OBJECT_ID ( 'usp_FindName', 'P' ) IS NOT NULL   
DROP PROCEDURE usp_FindName;  
GO  
CREATE PROCEDURE usp_FindName  
    @lastname VARCHAR(40) = '%',   
    @firstname VARCHAR(20) = '%'  
AS  
DECLARE @Count INT;  
DECLARE @ProcName NVARCHAR(128);  
SELECT LastName, FirstName  
FROM Person.Person   
WHERE FirstName LIKE @firstname AND LastName LIKE @lastname;  
SET @Count = @@ROWCOUNT;  
SET @ProcName = OBJECT_NAME(@@PROCID);  
RAISERROR ('Stored procedure %s returned %d rows.', 16,10, @ProcName, @Count);  
GO  
EXECUTE dbo.usp_FindName 'P%', 'A%';  

另请参阅

CREATE FUNCTION (Transact-SQL)
CREATE PROCEDURE (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
元数据函数 (Transact-SQL)
sys.objects (Transact-SQL)
sys.sql_modules (Transact-SQL)
RAISERROR (Transact-SQL)