如何用程序得到对SQL数据库指定表操作的SQL语句? 如何用程序得到对SQL数据库指定表操作的SQL语句?就象事件探查器一样,要不能把事件探查器里的信息取到也行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以在程序里写个日志函数,数据库建个日志表,在进行SQL操作的时候,记录操作语句到日志表中!! 是要单独做个程序程序的,人家直接在企业管理器里操作,在查询分析器里操作都要把SQL语句取出来。还有别的程序操作也要取出来。 一起看看这个吧?http://dev.csdn.net/author/zjcxc/3f2220ab9012469ba6f0de5e72fbf3bb.html CREATE PROCEDURE [up_star_trace] (@ctablename nvarchar (50),@cfilename nvarchar (50))AS/****************************************************//* Created by: SQL Profiler *//* 2008/08/20 15:25:41 *//****************************************************/declare @rc intdeclare @TraceID intdeclare @maxfilesize bigintset @maxfilesize = 5 set @ctablename='%'+@ctablename+'%'exec @rc = sp_trace_create @TraceID output, 0, @cfilename, @maxfilesize, NULL if (@rc != 0) goto error-- Client side File and Table cannot be scripted-- Set the eventsdeclare @on bitset @on = 1exec sp_trace_setevent @TraceID, 12, 1, @onexec sp_trace_setevent @TraceID, 12, 6, @onexec sp_trace_setevent @TraceID, 12, 10, @onexec sp_trace_setevent @TraceID, 12, 11, @onexec sp_trace_setevent @TraceID, 12, 12, @onexec sp_trace_setevent @TraceID, 12, 14, @onexec sp_trace_setevent @TraceID, 12, 15, @onexec sp_trace_setevent @TraceID, 12, 16, @onexec sp_trace_setevent @TraceID, 12, 18, @on-- Set the Filtersdeclare @intfilter intdeclare @bigintfilter bigintexec sp_trace_setfilter @TraceID, 1, 1, 6, @ctablenameexec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Profiler'-- Set the trace status to startexec sp_trace_setstatus @TraceID, 1-- display trace id for future referencesselect TraceID=@TraceIDgoto finisherror: select ErrorCode=@rcfinish:GO CREATE PROCEDURE [up_end_trace](@itraceid int,@cintotabelname nvarchar(50),@trcfilename nvarchar(50))ASdeclare @sqlstr nvarchar(100)EXEC sp_trace_setstatus @itraceid, 0 --停止跟踪EXEC sp_trace_setstatus @itraceid , 2 --关闭跟踪set @sqlstr ='SELECT * INTO '+ @cintotabelname+' FROM :: fn_trace_gettable ('+@trcfilename+', default)'exec sp_executesql @sqlstr --写入指定表里GO 一个关于分组的问题。 新手问一个很白痴的问题。 关于修改表的 not null 时遇到的问题? 各位高手帮看看,触发器问题 一个有意思的SQL语句 如何知道别人登录我的SQLSERVER? 找好方法在線等(來者有分)! 怎样导出视图? 怎样取得所有当前连接MSSQL的用户信息? 务请各位仁兄不吝指教:C/S结构,服务器端若不装Sql Server,不知可以吗?用什么东东即可驱动sql数据库? 老师们来看看,这个联合查询怎么查都查不出来。2个表,其中一个表是二级栏目的分类 设计表的时候 你们都用主外键约束了么?
http://dev.csdn.net/author/zjcxc/3f2220ab9012469ba6f0de5e72fbf3bb.html
(
@ctablename nvarchar (50),
@cfilename nvarchar (50)
)
AS
/****************************************************/
/* Created by: SQL Profiler */
/* 2008/08/20 15:25:41
*/
/****************************************************/
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
set @maxfilesize = 5
set @ctablename='%'+@ctablename+'%'
exec @rc = sp_trace_create @TraceID output, 0, @cfilename, @maxfilesize, NULL
if (@rc != 0) goto error-- Client side File and Table cannot be scripted-- Set the events
declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 12, 1, @on
exec sp_trace_setevent @TraceID, 12, 6, @on
exec sp_trace_setevent @TraceID, 12, 10, @on
exec sp_trace_setevent @TraceID, 12, 11, @on
exec sp_trace_setevent @TraceID, 12, 12, @on
exec sp_trace_setevent @TraceID, 12, 14, @on
exec sp_trace_setevent @TraceID, 12, 15, @on
exec sp_trace_setevent @TraceID, 12, 16, @on
exec sp_trace_setevent @TraceID, 12, 18, @on
-- Set the Filters
declare @intfilter int
declare @bigintfilter bigintexec sp_trace_setfilter @TraceID, 1, 1, 6, @ctablename
exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Profiler'
-- Set the trace status to start
exec sp_trace_setstatus @TraceID, 1-- display trace id for future references
select TraceID=@TraceID
goto finisherror:
select ErrorCode=@rcfinish:
GO
(@itraceid int,
@cintotabelname nvarchar(50),
@trcfilename nvarchar(50))
AS
declare @sqlstr nvarchar(100)EXEC sp_trace_setstatus @itraceid, 0 --停止跟踪EXEC sp_trace_setstatus @itraceid , 2 --关闭跟踪
set @sqlstr ='SELECT * INTO '+ @cintotabelname+' FROM :: fn_trace_gettable ('+@trcfilename+', default)'
exec sp_executesql @sqlstr
--写入指定表里
GO