今天主要介绍的是SQL Server 中的Default Trace
Default Trace(默认跟踪)
一:查询Default Trace是否开启
select * from sys.configurations where configuration_id = 1568
如果没开启,使用如下sql语句进行开启
sp_configure 'show advanced options', 1;
go
reconfigure;
go
sp_configure 'default trace enabled', 1;
go
reconfigure;
go
二: 获取跟踪文件的路径
select * from ::fn_trace_getinfo(0)
三:查询详细信息
select
loginname,
loginsid,
spid,
hostname,
applicationname,
servername,
databasename,
objectname,
e.category_id,
cat.name as [CategoryName],
textdata,
starttime,
eventclass,
eventsubclass, --0表示begin,1表示commit
e.name as EventName,
e.trace_event_id
from ::fn_trace_gettable('D:\OYYT\OtherSoft\SQL Server\Root directory\MSSQL15.MSSQLSERVER\MSSQL\Log\log_480.trc',0)
inner join sys.trace_events e
on eventclass = trace_event_id
inner join sys.trace_categories as cat
on e.category_id = cat.category_id
where databasename = 'test_log' and --test_log表示我创建的数据库名称
objectname = 'test' and --根据objectname来过滤 test表示我库中的表名称
e.category_id = 5 and --category 5表示对象
e.trace_event_id = 46 --trace_event_id: 46表示Create对象,47表示Drop对象,164表示修改对象
编写此文字留作记录,同时也感谢博主的文章指导。我写的可能较为简陋,如有疑问可以查看文章开篇链接地址,去看原文。