web-dev-qa-db-ja.com

現在実行中のプロシージャ名

MS SQL Serverで現在のストアドプロシージャの名前を取得することは可能ですか? GETDATE()のようなシステム変数または関数があるかもしれませんか?

85
Sergey Metlov

これを試すことができます:

SELECT OBJECT_NAME(@@PROCID)

更新:このコマンドは、SQL Server 2016でも引き続き有効です。

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

OBJECT_NAME(@@ PROCID) を使用できます

現在のTransact-SQLモジュールのオブジェクト識別子(ID)を返します。 Transact-SQLモジュールは、ストアドプロシージャ、ユーザー定義関数、またはトリガーにすることができます。

14
jams

現在実行中のtemporaryストアドプロシージャの名前に興味がある特定のケースでは、次の方法で取得できます。

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

SQL Serverで受け入れられた回答を使用して、現在実行中の一時ストアドプロシージャの名前を見つけることはできません。

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


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

(1 row affected)
5
ajeh