2012-02-06 17 views
1

SQL Server 2005の使用特定のプロシージャがいつ変更されたかを確認したい。このクエリで、私は、最終更新日時を取得:ストアドプロシージャが最後に変更/変更されたのはいつですか?

SELECT name, create_date, modify_date 
FROM sys.objects 
WHERE name = 'name_of_proc' 

私はそれがすべての修正の一覧、その前に、または好ましくは変更されたときに取得する必要があります。それは可能ですか?

+0

[source control](http://stackoverflow.com/a/1597085/27535)またはhttp://stackoverflow.com/a/4524616/27535がありますか? – gbn

答えて

1

SQL Server Management Studioからスキーマ変更履歴レポートを試すことができます。レポート - - データベース上

右クリック標準レポート - スキーマ変更履歴を常にCREATE_PROCEUDUREとALTER_PROCEDUREのためのDDLトリガーを設定し、テーブルに結果を格納することができ

+0

IIRC、これはデフォルトのトレースに依存しています。そうであれば、あなたの履歴はあなたが敷設しているファイルの数によって制限されます。 –

1

いいえ、できません。 SQL Serverは、1万人の管理者のうちの1人が1年に1回それを見たい場合、メモリ内のどこかですべてのDML操作の履歴を保持しません。

+0

それは私が考えていたものです...とにかくありがとう –

1

。実際のDDL実行をキャプチャすると、実際のプロシージャのアーカイブとしても機能するという利点があります。つまり、以前のバージョンに戻す必要がある場合は、それが変更されたことが分かっていることが特に役立ちます。

+0

DDLトリガーを作成して変更をログに記録する方法 しかし、これを行う前に、テーブルを作成して既存のストアドプロシージャをすべて保存する必要があります http://www.mssqltips.com/sqlservertip/2085/sql-server-ddl-トリガからトータルのデータベース変更/ – RAY

関連する問題