MS SQL Serverで現在のストアドプロシージャの名前を取得することは可能ですか? GETDATE()
のようなシステム変数または関数があるかもしれませんか?
これを試すことができます:
SELECT OBJECT_NAME(@@PROCID)
更新:このコマンドは、SQL Server 2016でも引き続き有効です。
OBJECT_SCHEMA_NAME(@@PROCID) + '.' + OBJECT_NAME(@@PROCID)
OBJECT_NAME(@@ PROCID) を使用できます
現在のTransact-SQLモジュールのオブジェクト識別子(ID)を返します。 Transact-SQLモジュールは、ストアドプロシージャ、ユーザー定義関数、またはトリガーにすることができます。
現在実行中の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)