SQL Server や T-SQL を初めて学ぶ人のための学習サイトです。 便利なクエリーやチューニングの仕方なども掲載しています。
SQL Server 入門
T-SQL 入門
便利なT-SQL&クエリー集
SQL Server&T-SQLに関するコラム
サイト情報
MCTS: SQL Server 2008, Database Development
サイト内検索
カスタム検索
ホーム > 便利な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 に渡して、そこで呼び側のストアドプロシージャ名を取得することも可能です。



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

© 2014 SQL Server 入門