这个触发器正在产生问题,我找不到原因。
CREATE TRIGGER initialpay
ON table1
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
declare @value char
select @value = '1000000' from inserted
update table1
set table1.column1 = @value
END
插入新行时,所有行的整列都会更新。我想只更新新插入的行。 谁能告诉我这是什么问题?
答案 0 :(得分:3)
您假设只插入了一行。您需要设置面向触发器,否则您将错过多行插入。
CREATE TRIGGER initialpay
ON table1
AFTER INSERT
AS BEGIN
IF @@ROWCOUNT = 0 RETURN
SET NOCOUNT ON;
update t1
set column1 = i.col
from table1 t1
join inserted i on t1.id = i.id
END
答案 1 :(得分:0)
您必须使用以下语法:
update table1
set table1.column1 = @value
FROM inserted
WHERE table1.id= inserted.id;