我在表(标签)上的sqlserver中触发了
Create TRIGGER Trig_TabsUp
on Tabs
For UPDATE
AS
insert into tabs_Update select * from deleted
表tabs_update
与制表符相同,但制表符中的标识字段不是tabs_update
中的标识,只是int。它给了我这个错误
更新或删除的行值要么不使行唯一,要么改变多行2行
我试图将一个标识字段放到表Tabs_Update但仍然是同样的错误
答案 0 :(得分:1)
尝试将SET NOCOUNT ON
添加到触发器定义中。
答案 1 :(得分:0)
我猜你在ID字段上有一个主键或唯一约束。这是第二次更新同一记录时出现此问题。 Sp_help Tabs_update
会告诉你它们是什么。
你是正确的ID字段和int。但是,您应该添加“更新日期时间”字段,并使主键成为ID和更新日期时间的组合。
同样做select *几乎总是被认为是个坏主意。如果添加新字段并忘记添加更新表,则触发器将中断。如果更改字段的顺序,它也会中断。