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 回答