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
查看更多相关问题 >>