【发布时间】:2014-10-22 02:19:20
【问题描述】:
我的桌子上有一个列col1,该列正在减少。当col1 取值0时,我希望col1 取名为col2 的列的值,col2 传递取值0。
PD:我已经有一个触发器,可以在我进行插入时减少列。当我的触发器最终到达让col1=0 时,我需要将col1 更改为col2 和col2=0 的其他触发器。我尝试了以下触发器,但不起作用
create Trigger tr on table
after insert,update As
declare @id int
set @id=(select inserted.ID_TABLE from inserted)
UPDATE table
SET col1 = CASE WHEN col1=0 THEN col2
END
UPDATE table
set col2=0
where ID_TABKE=@id
【问题讨论】:
-
这个要求真的很奇怪。反正你已经在用一个触发器了,为什么不加这个条件呢?
-
您的代码非常脆弱,并且很可能无法执行您想要的操作,因为您在触发器中使用了标量值。当插入的行数超过 1 行时会发生什么?无论前端如何,并且您的触发器需要处理它,它都可以并且将会在某个时候发生。
标签: sql-server triggers