插入后TRIGGER重复UserId

时间:2015-04-14 07:21:49

标签: c# sql-server triggers

我在ASP.NET表“UsersInRoles”上添加了一个名为“UIR_UserID [nvarchar(50)]”的字段。我想在插入时触发的操作是将UserId复制到UIR_UserId字段。

CREATE TRIGGER [dbo].[TRIG_INS_DUPL_USER_ID] 
ON [dbo].[UsersInRoles] AFTER INSERT AS
BEGIN
INSERT INTO UsersInRoles(UIR_UserID)
SELECT UserId
FROM INSERTED
END

1 个答案:

答案 0 :(得分:1)

你所获得的并不好,你将获得无限的递归。我认为您正在寻找UPDATE新插入的行,而不是插入其他行:

update u
set UIR_UserID = i.UserId
from dbo.UsersInRoles u
join inserted i on u.UserId = i.UserId

或者,您尝试做的实际情况是从调用应用程序中抽象出UIR_UserID字段。您可以改为使用存储过程或可插入视图来执行此内联。虽然你在同一行的两列中有重复数据的事实仍然是可疑的。