C# 插入重复用户ID后触发
我在ASP.NET表“UsersInRoles”中添加了一个名为“C# 插入重复用户ID后触发,c#,sql-server,triggers,C#,Sql Server,Triggers,我在ASP.NET表“UsersInRoles”中添加了一个名为“UIR\u UserID[nvarchar(50)]”的附加字段。我想在插入时触发的是将用户ID复制到toUIR\u UserId字段中 CREATE TRIGGER [dbo].[TRIG_INS_DUPL_USER_ID] ON [dbo].[UsersInRoles] AFTER INSERT AS BEGIN INSERT INTO UsersInRoles(UIR_UserID) SELECT UserId FROM
UIR\u UserID[nvarchar(50)]
”的附加字段。我想在插入时触发的是将用户ID复制到toUIR\u 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
你得到的不是好的,你会得到无限的递归。我认为您希望
更新新插入的行,而不是插入其他行:
update u
set UIR_UserID = i.UserId
from dbo.UsersInRoles u
join inserted i on u.UserId = i.UserId
或者,看起来您真正想要做的是从调用应用程序中抽象出UIR\u UserID
字段。您可以改为使用存储过程或可插入视图来执行此内联操作。尽管在同一行的两列中存在重复数据这一事实仍然值得怀疑。在另一个字段UIR\U userid中需要相同的userid有什么具体原因吗?