SQL Server 入門 SQL Server 入門

T-SQL: 現在のストアドプロシージャ名を取得する

ホーム > 便利なT-SQL&クエリー集 > T-SQL: 現在のストアドプロシージャ名を取得する

現在のストアドプロシージャ名を取得するには?

ログ機能などを作っている時に、実行したストアドプロシージャ名を取得して保存しておきたい時があるかもしれません。

ここではそんな時に使えるスクリプトをご紹介します。

ストアドプロシージャ内でそのストアドプロシージャ名を取得するには

以下のスクリプトで、ストアドプロシージャが実行されている時に、ストアドプロシージャ内でそのストアドプロシージャ名を取得することができます。

SELECT OBJECT_NAME(@@PROCID)

まず、@@PROCID ですが、これは現在の T-SQLモジュールのオブジェクト識別子を返します。ストアドプロシージャの他にもトリガーや、ユーザー定義のファンクション内でも使えます。

そして、その ID をオブジェクト ID からオブジェクト名を返してくれる OBJECT_NAME() に渡すことによって、ストアドプロシージャ名を取得することができます。


スキーマ名も必要な場合は同様にOBJECT_SCHEMA_NAME() にオブジェクトIDを渡すことによって取得することができます。

SELECT OBJECT_SCHEMA_NAME(@@PROCID)

もちろん @@PROCID で取得した ID を、ログを保存する別の stored procedure に渡して、そこで呼び側のストアドプロシージャ名を取得することも可能です。

SQL Server 関連のおすすめ書籍
ホーム > 便利なT-SQL&クエリー集 > T-SQL: 現在のストアドプロシージャ名を取得する