web-dev-qa-db-fra.com

Nom de la procédure en cours d'exécution

Est-il possible d'obtenir le nom de la procédure stockée actuelle dans MS SQL Server? Peut-être y a-t-il une variable système ou une fonction comme GETDATE()?

85
Sergey Metlov

Vous pouvez essayer ceci:

SELECT OBJECT_NAME(@@PROCID)

pdate: Cette commande est toujours valide sur SQL Server 2016.

129
Alireza Maddah
OBJECT_SCHEMA_NAME(@@PROCID) + '.' + OBJECT_NAME(@@PROCID)
66
karthik

Vous pouvez utiliser OBJECT_NAME (@@ PROCID)

Renvoie l'identificateur d'objet (ID) du module Transact-SQL actuel. Un module Transact-SQL peut être une procédure stockée, une fonction définie par l'utilisateur ou un déclencheur.

14
jams

Dans le cas particulier où vous êtes intéressé par le nom de la procédure stockée en cours d'exécution temporaire, vous pouvez l'obtenir via:

select name
from tempdb.sys.procedures
where object_id = @@procid

Vous ne pouvez pas utiliser la réponse acceptée dans SQL Server pour rechercher le nom de la procédure stockée temporaire en cours d'exécution:

create procedure #p
as
select object_name(@@PROCID) as name
go
exec #p


name
--------------------------------------------------------------------------------------------------------------------------------
NULL

(1 row affected)
5
ajeh