当前位置:首页 >> 行业知识库 >> 触发器行业知识库 >> sql 触发器 update的问题

sql 触发器 update的问题

CREATE TRIGGER GXDHSL ON RKD
FOR UPDATE
AS
DECLARE @DHDH VARCHAR(50) --计划单号
DECLARE @SL decimal(18,6) --修改前数量
DECLARE @DHSL decimal(18,6) --修改后数量
SELECT @DHDH=ysdh,@SL=SSSL FROM DELETED
SELECT @DHSL=SSSL FROM INSERTED
UPDATE GL_QGD SET DHSL=DHSL-ISNULL(@SL,0) WHERE DH=@DHDH
go
但是RKD这张表在其它操作的时候还会更新 SHBZ和JZBZ这两个字段,我想更新SHBZ和JZBZ的时候不触发触发器。不知道怎么写?
最佳答案:
使用更新什么字段才执行触发器就行了
CREATE TRIGGER GXDHSL ON RKD
FOR UPDATE
AS
IF(Update(字段名))
begin
DECLARE @DHDH VARCHAR(50) --计划单号
DECLARE @SL decimal(18,6) --修改前数量
DECLARE @DHSL decimal(18,6) --修改后数量
SELECT @DHDH=ysdh,@SL=SSSL FROM DELETED
SELECT @DHSL=SSSL FROM INSERTED
UPDATE GL_QGD SET DHSL=DHSL-ISNULL(@SL,0) WHERE DH=@DHDH
end
go
其 他 回 答: (共3条)
1楼
if @SL!=@DHSL
SELECT @DHDH=ysdh,@SL=SSSL FROM DELETED
SELECT @DHSL=SSSL FROM INSERTED
UPDATE GL_QGD SET DHSL=DHSL-ISNULL(@SL,0) WHERE DH=@DHDH
2楼

你这个表的操作只是对表的更新的时间有作用的,updete所对应的表是inserted和deleted
查看更多相关问题 >>
相关触发器行业知识库

友情链接:

首页 | 网站简介 | 采购市场 | 行业分类 | 信息投诉/删除/联系本站

手机版 | 电脑版

Copyright © 商名网

京ICP备17049264号