Share via


@@PROCID (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Devuelve el identificador (Id.) de objeto del módulo Transact-SQL actual. Un módulo Transact-SQL puede ser un procedimiento almacenado, una función definida por el usuario o un desencadenador. @@PROCID no se puede especificar en módulos CLR o en el proveedor de acceso a datos en proceso.

Convenciones de sintaxis de Transact-SQL

Sintaxis

@@PROCID  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Tipos de valor devuelto

int

Ejemplos

En el siguiente ejemplo se utiliza @@PROCID como parámetro de entrada en la función OBJECT_NAME para devolver el nombre del procedimiento almacenado en el mensaje 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%';  

Consulte también

CREATE FUNCTION (Transact-SQL)
CREATE PROCEDURE (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
Funciones de metadatos (Transact-SQL)
sys.objects (Transact-SQL)
sys.sql_modules (Transact-SQL)
RAISERROR (Transact-SQL)