0

この記事では、標準レポートを実行して最近のDDL変更を表示する方法について説明します。

データがキャプチャされた場合、それはおそらくどこかのテーブルにあります。Trace自分のレポートを作成できるように、この場所に移動したいと思います。

これは可能ですか?

4

1 に答える 1

1

オプション1

select * FROM sys.traces where is_default = 1 ;

このクエリにはパス列が含まれています。トレースファイルのパスをコピーして、以下のクエリを使用します

SELECT * FROM fn_trace_gettable('Path Column value from sys.traces', default)

どのテーブル(オブジェクト)が変更され、誰が変更されましたか?

select ObjectName, LoginName 
from ::fn_trace_gettable( 'Path Column value from sys.traces', default)
where EventClass in (46,47,164) and EventSubclass = 0  
                                and DatabaseID = db_id() ;             


select ObjectName,       
ObjectID,       
DatabaseName,       
StartTime,       
EventClass,       
EventSubClass,       
ObjectType,       
ServerName,       
LoginName,       
NTUserName,       
ApplicationName  
from ::fn_trace_gettable( 'Trace File Path', default )            
where EventClass in (46,47,164) and EventSubclass = 0  and DatabaseID = db_id();

オプション#2

SQL Server –DDLトリガーを使用したスキーマ変更の監査

このアプローチにより、追加された列、または追加に使用されたコマンドがわかります

于 2012-08-16T16:23:48.663 に答える