-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathTraceExceptions.sql
More file actions
129 lines (100 loc) · 3.73 KB
/
TraceExceptions.sql
File metadata and controls
129 lines (100 loc) · 3.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
USE master;
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'DBA' )
BEGIN;
CREATE DATABASE DBA;
ALTER DATABASE DBA SET RECOVERY SIMPLE;
END;
--xp_cmdshell 'md D:\Traces'
USE [DBA];
IF OBJECT_ID('TraceExceptions', 'P') IS NOT NULL DROP PROCEDURE TraceExceptions;
GO
/*
EXEC DBA.dbo.TraceExceptions @MaxFileSize = 50, @FileCount = 30, @Path = 'C:\Traces\TraceExceptions'
EXEC sp_trace_setstatus 3, 1 --start
EXEC sp_trace_setstatus 4, 0 --stop
EXEC sp_trace_setstatus 4, 2 --remove
SELECT * FROM sys.traces
*/
CREATE PROCEDURE [dbo].[TraceExceptions]
(
@Path sysname
,@MaxFileSize bigint = 50
,@FileCount int = 10
)
AS
SET NOCOUNT ON;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
DECLARE @RC int, @TraceID int, @EventClass int;
EXEC @RC = sp_trace_create
@TraceID OUTPUT
,@options = 2 -- file rollover
,@tracefile = @Path
,@MaxFileSize = @MaxFileSize -- MB
,@stoptime = NULL -- @stoptime
,@FileCount = @FileCount ; -- @filecount
IF (@RC <> 0) OR (@@ERROR <> 0)
BEGIN;
SELECT @RC AS ReturnCode, @@ERROR AS Error; RETURN(1);
END;
-- sp_trace_setevent @traceid, @eventid, @columnid, @on;
DECLARE @on bit; SELECT @on = 1;
-- User Error Message
-- Displays error messages that users see in the case of an error or exception.
SELECT @EventClass = 162 ;
EXEC sp_trace_setevent @TraceID, @EventClass, 1, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 9, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 3, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 11, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 4, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 6, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 7, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 8, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 10, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 12, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 14, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 20, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 26, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 30, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 31, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 35, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 41, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 49, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 50, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 51, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 60, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 64, @on
EXEC sp_trace_setevent @TraceID, @EventClass, 66, @on
/*
List of Columns & EventClass httpmsdn.microsoft.comen-uslibraryms186265.aspx
sp_trace_setfilter @TraceId, @columnid, @logical_operator, @comparison_operator, @value ;
@logical_operator AND (0) or OR (1)
@comparison_operator
0 = Equal, 1 = Not equal, 2 = Greater than, 3 = Less than, 4 = Greater than or equal,
5 = Less than or equal, , 6 = Like, 7 = Not like
*/
/*
-- Set the Filters
DECLARE @intfilter int
DECLARE @bigintfilter bigint
SET @intfilter = 5701
EXEC sp_trace_setfilter @TraceID, 31, 0, 1, @intfilter
SET @intfilter = 5703
EXEC sp_trace_setfilter @TraceID, 31, 0, 1, @intfilter
SET @intfilter = 8153
EXEC sp_trace_setfilter @TraceID, 31, 0, 1, @intfilter
SET @intfilter = 4035
EXEC sp_trace_setfilter @TraceID, 31, 0, 1, @intfilter
SET @intfilter = 3014
EXEC sp_trace_setfilter @TraceID, 31, 0, 1, @intfilter
SET @intfilter = 3211
EXEC sp_trace_setfilter @TraceID, 31, 0, 1, @intfilter
SET @intfilter = 14108
EXEC sp_trace_setfilter @TraceID, 31, 0, 1, @intfilter
SET @intfilter = 14149
EXEC sp_trace_setfilter @TraceID, 31, 0, 1, @intfilter
*/
-- Start trace
EXEC sp_trace_setstatus @TraceID, 1 ;
SELECT TraceID = @TraceID;
RETURN(0);
GO