打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
触发器trigger记录前后数据变化

触发器内置了deleted和inserted内存表,通过ID关联就能够取得已经删除的老数据(deleted表),和插入的新数据(inserted表),update是先delete后insert.
但是不推荐用触发器记录,会拖慢速度, 更新几笔则会触发几次,建议使用存储过程

alter   trigger [dbo].[Inventory_KcnumberChangeRcord]
on  [dbo].[A]
for update 
as
BEGIN 
if update(kcnumber)
begin

DECLARE @id int 
DECLARE @oldKCnumber  as float
DECLARE @KCnumber  as float
DECLARE @type as  nvarchar(50)

--SELECT * INTO #INS FROM INSERTED

DECLARE @orderID nvarchar(20)
DECLARE @sysnumber nvarchar(20)
DECLARE V_CURSOR CURSOR SCROLL  dynamic  --动态
FOR
Select  id,KCnumber   From inserted 
OPEN V_CURSOR    --打开游标
fetch next from V_CURSOR into @id,@KCnumber --开始抓取第一条数据 
WHILE(@@fetch_status=0)         --语句成功  有数据
begin 

SET @oldKCnumber=( SELECT top 1  A.Kcnumber from deleted  A where A.id=@id )

insert into  dbo.[Inventory_+](Inventory_Id,OLDKCnumber,KCnumber,type,createtime)
select @id ,@oldKCnumber   ,@KCnumber as KCnumber,'',GETDATE()


FETCH NEXT FROM V_CURSOR INTO @orderID,@sysnumber
end 
CLOSE V_CURSOR
DEALLOCATE V_CURSOR 

--insert into DB_HekeLog.dbo.[N_Inventory_+](Inventory_Id,OLDKCnumber,KCnumber,type,createtime)
--select A.id, A.KCnumber ,B.KCnumber ,'+',GETDATE()
--FROM  deleted  A,inserted   B
--WHERE A.ID=B.ID    AND 


end 
END 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
server触发器示例
触发器TRIGGER 自增IDENTITY 聚集索引CLUSTERED
给所有表加上一个更新时间戳的触发器
触发器示例
SQL Server 触发器
mssql2000触发器,演绎日周月年数据累加统计
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服