※当サイトはアフィリエイト広告を利用しています。

【SQLServer】ストアドプロシージャの作成日付、更新日付取得を調べる方法

アイキャッチ

こんにちは、nanoです。SQLServerを扱う案件で登録したストアドプロシージャの更新日付を取得する必要があったのでこの記事にメモとして残します。

ストアドプロシージャの更新日付情報はどこに格納されている?

SQLServerには、個別に作成するテーブルのほかにSQLSever自体が管理しているテーブルが存在します。その中でsysユーザが所有している「sys.objects」という名前のテーブルにSQLServerのオブジェクト(テーブル、プロシージャなど)の情報が登録されています。このテーブルからプロージャの更新日付を取得します。

プロシージャの更新日付取得SQL

saなどのsysにアクセスできる権限ユーザで以下を実行します。
※現場によってはsaの使用を禁止しているとことがあるので、ご自身の現場に応じたユーザで実行してください。

SELECT 
   name -- 名前 
  ,type -- タイプ:プロシージャは「P」
  ,create_date -- 作成日付
  ,modify_Date -- 更新日付 ※ALTERした日付
FROM sys.objects
WHERE type = 'P'
ORDER BY name

現在取得できるオブジェクトのタイプ

すべてのオブジェクトを作成していないので、タイプの一覧がわかりませんが以下でオブジェクトのタイプとタイプの説明を出力できます。

SELECT distinct 
   type -- タイプ 
  ,type_desc -- タイプ説明
FROM sys.objects
ORDER BY type

まとめ

  • sys.objectsでオブジェクト(テーブル、プロシージャなど)情報を取得できる
  • sys.objectsのtypeでオブジェクトを区別できる

以上
[temp id=4]