历史记录怎实现

时间:2021-05-02 08:58:04
asp.net插入的时候,或者更新的时候,在历史表里插入数据,但是想知道跟新了哪个字段?怎么做?

10 个解决方案

#1


历史记录怎实现
用触发器,

#2


引用 1 楼 wyd1520 的回复:
历史记录怎实现
用触发器,

详细说明

#3


引用 2 楼 dddd123hzy 的回复:
详细说明

create trigger trig_test on tb
instead of  update
as
set nocount on
 
if update(f1)
begin
......
end

#4


可以像楼上一样,写触发器trigger
也可以通过 asp.net写日志,记录在数据库。
这个看个人习惯了。

#5


引用 3 楼 xdashewan 的回复:
Quote: 引用 2 楼 dddd123hzy 的回复:

详细说明

create trigger trig_test on tb
instead of  update
as
set nocount on
 
if update(f1)
begin
......
end



引用 3 楼 xdashewan 的回复:
Quote: 引用 2 楼 dddd123hzy 的回复:

详细说明

create trigger trig_test on tb
instead of  update
as
set nocount on
 
if update(f1)
begin
......
end



引用 4 楼 hanjun0612 的回复:
可以像楼上一样,写触发器trigger
也可以通过 asp.net写日志,记录在数据库。
这个看个人习惯了。

我想实现的功能是判断哪个字段被更新了

#6


引用 5 楼 dddd123hzy 的回复:
我想实现的功能是判断哪个字段被更新了

你update难道是全字段更新?那你只能自己程序里区分哪个字段更新了

#7


如果用了EF之类的ORM,实体类都实现了IPropertyChangedNotify接口,可以继承重写代理类

#8


引用 5 楼 dddd123hzy 的回复:
Quote: 引用 3 楼 xdashewan 的回复:

Quote: 引用 2 楼 dddd123hzy 的回复:

详细说明

create trigger trig_test on tb
instead of  update
as
set nocount on
 
if update(f1)
begin
......
end



引用 3 楼 xdashewan 的回复:
Quote: 引用 2 楼 dddd123hzy 的回复:

详细说明

create trigger trig_test on tb
instead of  update
as
set nocount on
 
if update(f1)
begin
......
end



引用 4 楼 hanjun0612 的回复:
可以像楼上一样,写触发器trigger
也可以通过 asp.net写日志,记录在数据库。
这个看个人习惯了。

我想实现的功能是判断哪个字段被更新了


我觉得,你就直接程序里,log日志把sql语句记录到数据库算了,哈哈 历史记录怎实现

#9


引用 8 楼 hanjun0612 的回复:
Quote: 引用 5 楼 dddd123hzy 的回复:

Quote: 引用 3 楼 xdashewan 的回复:

Quote: 引用 2 楼 dddd123hzy 的回复:

详细说明

create trigger trig_test on tb
instead of  update
as
set nocount on
 
if update(f1)
begin
......
end



引用 3 楼 xdashewan 的回复:
Quote: 引用 2 楼 dddd123hzy 的回复:

详细说明

create trigger trig_test on tb
instead of  update
as
set nocount on
 
if update(f1)
begin
......
end



引用 4 楼 hanjun0612 的回复:
可以像楼上一样,写触发器trigger
也可以通过 asp.net写日志,记录在数据库。
这个看个人习惯了。

我想实现的功能是判断哪个字段被更新了


我觉得,你就直接程序里,log日志把sql语句记录到数据库算了,哈哈 历史记录怎实现

详细说明

#10


你应该有一个  sqlhelper类吧。
然后在 finally的 connection.close()之前,将sql写入一张表就好了。

#1


历史记录怎实现
用触发器,

#2


引用 1 楼 wyd1520 的回复:
历史记录怎实现
用触发器,

详细说明

#3


引用 2 楼 dddd123hzy 的回复:
详细说明

create trigger trig_test on tb
instead of  update
as
set nocount on
 
if update(f1)
begin
......
end

#4


可以像楼上一样,写触发器trigger
也可以通过 asp.net写日志,记录在数据库。
这个看个人习惯了。

#5


引用 3 楼 xdashewan 的回复:
Quote: 引用 2 楼 dddd123hzy 的回复:

详细说明

create trigger trig_test on tb
instead of  update
as
set nocount on
 
if update(f1)
begin
......
end



引用 3 楼 xdashewan 的回复:
Quote: 引用 2 楼 dddd123hzy 的回复:

详细说明

create trigger trig_test on tb
instead of  update
as
set nocount on
 
if update(f1)
begin
......
end



引用 4 楼 hanjun0612 的回复:
可以像楼上一样,写触发器trigger
也可以通过 asp.net写日志,记录在数据库。
这个看个人习惯了。

我想实现的功能是判断哪个字段被更新了

#6


引用 5 楼 dddd123hzy 的回复:
我想实现的功能是判断哪个字段被更新了

你update难道是全字段更新?那你只能自己程序里区分哪个字段更新了

#7


如果用了EF之类的ORM,实体类都实现了IPropertyChangedNotify接口,可以继承重写代理类

#8


引用 5 楼 dddd123hzy 的回复:
Quote: 引用 3 楼 xdashewan 的回复:

Quote: 引用 2 楼 dddd123hzy 的回复:

详细说明

create trigger trig_test on tb
instead of  update
as
set nocount on
 
if update(f1)
begin
......
end



引用 3 楼 xdashewan 的回复:
Quote: 引用 2 楼 dddd123hzy 的回复:

详细说明

create trigger trig_test on tb
instead of  update
as
set nocount on
 
if update(f1)
begin
......
end



引用 4 楼 hanjun0612 的回复:
可以像楼上一样,写触发器trigger
也可以通过 asp.net写日志,记录在数据库。
这个看个人习惯了。

我想实现的功能是判断哪个字段被更新了


我觉得,你就直接程序里,log日志把sql语句记录到数据库算了,哈哈 历史记录怎实现

#9


引用 8 楼 hanjun0612 的回复:
Quote: 引用 5 楼 dddd123hzy 的回复:

Quote: 引用 3 楼 xdashewan 的回复:

Quote: 引用 2 楼 dddd123hzy 的回复:

详细说明

create trigger trig_test on tb
instead of  update
as
set nocount on
 
if update(f1)
begin
......
end



引用 3 楼 xdashewan 的回复:
Quote: 引用 2 楼 dddd123hzy 的回复:

详细说明

create trigger trig_test on tb
instead of  update
as
set nocount on
 
if update(f1)
begin
......
end



引用 4 楼 hanjun0612 的回复:
可以像楼上一样,写触发器trigger
也可以通过 asp.net写日志,记录在数据库。
这个看个人习惯了。

我想实现的功能是判断哪个字段被更新了


我觉得,你就直接程序里,log日志把sql语句记录到数据库算了,哈哈 历史记录怎实现

详细说明

#10


你应该有一个  sqlhelper类吧。
然后在 finally的 connection.close()之前,将sql写入一张表就好了。