两种方法的原理相同 第一种方法: <div class="codetitle"><a style="CURSOR: pointer" data="1589" class="copybut" id="copybut1589" onclick="doCopy('code1589')"> 代码如下:<div class="codebody" id="code1589"> procedure SQLCloseAllTrack; const sql = 'declare @TID integer ' + 'declare Trac Cursor For ' + 'SELECT Distinct Traceid FROM :: fn_trace_getinfo(default) ' + 'open Trac ' + 'Fetch Next From Trac into @TID ' + 'while @@fetch_status=0 ' + 'begin ' + ' exec sp_trace_setstatus @TID,0 ' + ' exec sp_trace_setstatus @TID,2 ' + ' Fetch Next From Trac into @TID ' + 'end ' + 'Close Trac ' + 'deallocate Trac'; begin //停止所有SQLSERVER的跟踪器,以防止程序被別人跟踪 ExecSql(sql); end; 第二种方法: <div class="codetitle"><a style="CURSOR: pointer" data="93303" class="copybut" id="copybut93303" onclick="doCopy('code93303')"> 代码如下:<div class="codebody" id="code93303"> with faq1 do begin Close; sql.Clear; sql.add('declare @t_count int'); sql.add('set @t_count=1'); sql.add('while exists(SELECT * FROM ::::fn_trace_geteventinfo(@t_count))'); sql.add('begin'); sql.add('exec sp_trace_setstatus @t_count,0'); sql.add('set @t_count=@t_count+1'); sql.add('end'); try execSQL; except; end; close;sql.Clear; end; end;
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|