我现在想完成一个功能
就是假如我要修改一条记录的同事把把我修改前的值和修改后的值记录到一张日志表里。这个怎么搞啊。想的头都大了
例子:
表1
ID NAME
1 a
2 b
3 c
日志表
ID OPINFO
假如我修改表1,ID号为1的NAME值为AAA的话。我想往日志表OPINFO列中插入“你把表1中ID号为1的NAME值修改为AAA”
各位帮帮忙
就是假如我要修改一条记录的同事把把我修改前的值和修改后的值记录到一张日志表里。这个怎么搞啊。想的头都大了
例子:
表1
ID NAME
1 a
2 b
3 c
日志表
ID OPINFO
假如我修改表1,ID号为1的NAME值为AAA的话。我想往日志表OPINFO列中插入“你把表1中ID号为1的NAME值修改为AAA”
各位帮帮忙
1.共有数据记录:要记录数据操作的时间,ip地址,操作人,种类
2.具体数据:象楼主列出的,只是这部分应该主要集中在状态或者标志上,具体数据写在描述字段
1.共有数据记录:要记录数据操作的时间,ip地址,操作人,种类
2.具体数据:象楼主列出的,只是这部分应该主要集中在状态或者标志上,具体数据写在描述字段
在确定数据操作完成之后,在保存日志表即可
if object_id('tb')is not null drop table tb
go
create table tb(ID int, [NAME] varchar(10),[meno]varchar(10))
insert tb select 1 , 'a','d'
insert tb select 2 , 'b','e'
insert tb select 3, 'c','f'
--日志表
if object_id('tb_log')is not null drop table tb_log
go
--ID OPINFO
create table tb_log(ID int,[name修改前]varchar(10),[name修改后] varchar(10),[meno修改前] varchar(10),
[meno修改后] varchar(10))
--创建触发器
if object_id('tri_update')is not null drop trigger tri_update
go
create trigger tri_update on tb
for update
as
insert tb_log select i.id,d.[name],i.[name],d.[meno],i.[meno]
from inserted i inner join deleted d on i.id=d.id
go
update tb set [name]='AAA',meno='DDD' where id=1
select * from tb_log
/*ID name修改前 name修改后 meno修改前 meno修改后
----------- ---------- ---------- ---------- ----------
1 a AAA d DDD*/