我在 SQL Server 2005 Enterprise 上运行服务器端跟踪并收到以下错误:
消息 19064,级别 16,状态 1,过程 sp_trace_create,第 1 行
请求的跟踪停止时间已过。
在执行正式的服务器端跟踪之前,我将此信息用作此跟踪脚本的测试。根据该站点,我需要一个DATETIME
变量(在这种情况下@stop
为 ),如果NULL
,它将无休止地继续。下面是与此相关的代码:
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
declare @end datetime
set @maxfilesize = 20
set @end = NULL
exec @rc = sp_trace_create
@TraceID output
, 0
, N'\\MyFilePath\trace'
, @maxfilesize
, @end
, 100
if (@rc != 0) goto error
如果我从网站上接受关于做一个时间框架(比如两个小时)的建议,或者如果我这样做NULL
(见上文),我也会收到同样的错误消息。例如,如果我将参数设置为 100,我不会收到错误消息,但会收到另一条错误消息,其中指出以下内容:
消息 19064,级别 16,状态 1,过程 sp_trace_create,第 1 行 请求的跟踪停止时间已过。
除了该错误之外,我没有收到任何像此跟踪应生成的输出文件。请注意,我假设无效的参数是 @end 因为当我将它更改为 - 应该是无效的 - 其他值时,它会以不同的错误执行。
与此错误无关的剩余代码如下:
-- Trace Events: REMOVED
-- Set the Filters
declare @intfilter int
declare @bigintfilter bigint
exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Server Profiler - 9cab2330-a33d-40d4-be59-cf5def384983'
-- Set the trace status to start
exec sp_trace_setstatus @TraceID, 1
--sp_trace_setstatus @traceid = 2, @status = 0 -- Trace stop
-- display trace id for future references
select TraceID=@TraceID
goto finish
error:
select ErrorCode=@rc
finish:
go