当前位置:主页>仓库管理软件> 列表

如何在SQL Server里跟踪一个表的操作(十分紧急!! 找批发零售软件

进销存软件版1楼: SQL Server数据库里的一个表,向里面导入了数据后,每隔一段时间就会自动被删除掉一些数据,现在无法查到到底是什么操作引起的这个表的删除动作,请教各位大虾,有没有方法对在这个表上进行的所有操作进行跟踪,查询出到时是哪个操作,或哪个客户端进行的操作。
问题解决后继续加分!

2楼: 不知道事件探查器能不能解决你的问题,可以试一下 如批发零售软件

3楼: SQL的事件探查器!

4楼: 我在用这种工具,但是好像不能看到查询、删除、插入等操作,请问要看到这些操作,具体要设置哪些事件、数据列和筛选条件。

5楼: SQL的事件探查器也行,自己写个触发器也行.
给个例子你(这是修改了某个字段的值后,发条信息给管理者的电脑.你把它改成删除记录就触发)

CREATE TRIGGER GetHostName ON [dbo].[exemplar_Master]
FOR UPDATE
AS
if update(Cust_code)
begin
declare @str varchar(1000),@SHosptialName varchar(500),@CHosptialName varchar(500),@Code varchar(10)

insert into t_log(code,SHosptialID,SHosptialName,CHosptialID,CHosptialName)
select a.code,a.cust_code,b.yymc,c.cust_code,d.yymc from deleted as a,kingwik.dbo.yyxx as b,Inserted as c,kingwik.dbo.yyxx as d
where a.code=c.code and a.cust_code=b.id and c.cust_code=d.id

select @Code=a.code,@SHosptialName=b.yymc,@CHosptialName=d.yymc from deleted as a,kingwik.dbo.yyxx as b,Inserted as c,kingwik.dbo.yyxx as d
where a.code=c.code and a.cust_code=b.id and c.cust_code=d.id

if @Code is null
set @code=''''
if @SHosptialName is null
set @SHosptialName=''''
if @CHosptialName is null
set @CHosptialName=''''

-- set @str=''master.dbo.xp_cmdshell ''''''+''net send 192.168.0.18 有人在“''+host_name()+''”机器上把条码为“''+rtrim(@Code)+''”的医院“''+rtrim(@SHosptialName)+''”改成了“''+rtrim(@CHosptialName)+''”'''', NO_OUTPUT''
-- print @str
execute(@str)
-- set @str=''master.dbo.xp_cmdshell ''''''+''net send 192.168.0.246 有人在“''+host_name()+''”机器上把条码为“''+rtrim(@Code)+''”的医院“''+rtrim(@SHosptialName)+''”改成了“''+rtrim(@CHosptialName)+''”'''', NO_OUTPUT''
-- execute(@str)

-- Insert T_log(code) values(''aa'')
end

6楼: 怎么可能
连接数据库,设置跟踪摸版属性
把你需要监控的事件添加进去
TSQL,存储过程(当然你嫌不够的话,多加点没关系),然后开启跟踪即可

进销存软件版7楼: 根据事件探察器已解决问题,谢谢大家!