2012-06-01 75 views
0

我想在插入值後更新一些數據列。但它給了我一些錯誤。請幫我解決這個問題。觸發器更新錯誤

消息4104,級別16,狀態1,過程TriggerBonus,第20行
多部分標識符 「i.User_id」 不能被約束。

觸發:

CREATE TRIGGER [dbo].[TriggerBonus] ON [dbo].[Bonus] 
FOR INSERT 
AS 
DECLARE @rcnt int 
SELECT @rcnt = @@rowcount 

IF(SELECT COUNT(*) FROM Bonus,inserted WHERE Bonus.Tpv = inserted.Tpv)[email protected]@rowcount 

/* Cancel the insert and print a message.*/ 
     begin 
     rollback transaction 
     end 

/* Otherwise, allow it. */ 
else 

UPDATE Bonus 
SET Subdealers_Id=('user') 
WHERE (User_id = i.User_id) 
+1

由於錯誤說,什麼是 「我」。在最後一行?你打算「插入」嗎? –

+0

感謝您的回覆。我的意思是插入。 – TRS

回答

1

你需要更新時:

UPDATE Bonus 
SET Subdealers_Id=('user') 
from inserted i inner join Bonus 
on {put your join here} 
WHERE (User_id = i.User_id) 
+1

發佈代碼時,突出顯示它並點擊「{}」或縮進四個空格 - 比自己添加html標記更容易(並且我們獲得語法高亮顯示) –