"-- 定义参数 保证指定目录存在
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
set @maxfilesize = 1024;
-- 初始化跟踪
exec @rc = sp_trace_create @TraceID output, 0, N'D:\SQLScript\trace_error_8623', @maxfilesize, NULL
--此处的D:\SQLScript\trace_error_8623是文件名(可自行修改),SQL会自动在后面加上.trc的扩展名
if (@rc != 0) goto error
-- 设置跟踪事件
declare @on bit;
set @on = 1;
--trace_event_id=13 SQL:BatchStarting trace_event_id=22 ErrorLog
exec sp_trace_setevent @TraceID, 13, 1, @on;
exec sp_trace_setevent @TraceID, 13, 3, @on;
exec sp_trace_setevent @TraceID, 13, 6, @on;
exec sp_trace_setevent @TraceID, 13, 7, @on;
exec sp_trace_setevent @TraceID, 13, 8, @on;
exec sp_trace_setevent @TraceID, 13, 11, @on;
exec sp_trace_setevent @TraceID, 13, 12, @on;
exec sp_trace_setevent @TraceID, 13, 14, @on;
exec sp_trace_setevent @TraceID, 13, 15, @on;
exec sp_trace_setevent @TraceID, 13, 35, @on;
exec sp_trace_setevent @TraceID, 13, 63, @on;
exec sp_trace_setevent @TraceID, 22, 1, @on;
exec sp_trace_setevent @TraceID, 22, 3, @on;
exec sp_trace_setevent @TraceID, 22, 6, @on;
exec sp_trace_setevent @TraceID, 22, 7, @on;
exec sp_trace_setevent @TraceID, 22, 8, @on;
exec sp_trace_setevent @TraceID, 22, 12, @on;
exec sp_trace_setevent @TraceID, 22, 11, @on;
exec sp_trace_setevent @TraceID, 22, 14, @on;
exec sp_trace_setevent @TraceID, 22, 14, @on;
exec sp_trace_setevent @TraceID, 22, 35, @on;
exec sp_trace_setevent @TraceID, 22, 63, @on;
-- 启动跟踪
exec sp_trace_setstatus @TraceID, 1;
-- 记录下跟踪ID,以备后面使用
select TraceID = @TraceID;
goto finish;
error:
select ErrorCode=@rc;
finish:
GO
-- 替换成你实际获取的 TraceID(例如 2) 关闭跟踪
DECLARE @TraceID INT = 2;
-- 先停止跟踪(状态 0)
EXEC sp_trace_setstatus @TraceID, 0;
-- 再关闭并删除跟踪定义(状态 2)
EXEC sp_trace_setstatus @TraceID, 2;
--以下是查询日志
SELECT StartTime,EndTime,TextData, ApplicationName,SPID,Duration,LoginName
FROM ::fn_trace_gettable(N'D:\SQLScript\trace_error_8623.trc',DEFAULT)
WHERE TextData like '%错误%'
ORDER BY StartTime
SELECT StartTime,EndTime,TextData, ApplicationName,SPID,Duration,LoginName
FROM ::fn_trace_gettable(N'D:\SQLScript\trace_error_8623.trc',DEFAULT)
WHERE spid in(62,184,113)
ORDER BY StartTime
spid=113