はじめに
仕事でSQLServerを扱うことになり、プロシージャの更新日付を取得する必要があったので、メモにのこします。
sys.objectsとは
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