2015-04-14 68 views
-1

我在ASP.NET表格「UsersInRoles」上添加了一個名爲「UIR_UserID [nvarchar(50)]」的附加字段。我想要插入的觸發器是將UserId複製到UIR_UserId字段。TRIGGER AFERT INSERT重複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 
+0

是否有任何特定的原因,爲什麼你需要在另一個字段UIR_userID相同的用戶ID? – ughai

回答

1

你有什麼是不好的,你會得到無限遞歸。我認爲你正在尋找UPDATE新插入的行,不插入額外的行:

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

或者,它真正的樣子,你正在試圖做的是抽象遠離調用應用程序的UIR_UserID領域。您可以改爲使用存儲過程或可插入視圖來執行此內聯操作。儘管在同一行的兩列中有重複數據的事實仍然是可疑的。