【问题标题】:Update error in trigger触发器中的更新错误
【发布时间】:2012-06-01 16:22:48
【问题描述】:

我想在插入值后更新一些数据列。但这给了我一些错误。请帮我解决这个问题。

消息 4104,级别 16,状态 1,过程触发奖励,第 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)!=@@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)

【问题讨论】:

  • 正如错误所说,什么是“i”。在最后一行?您是否打算“插入”?
  • 感谢您的回复。是的。我的意思是插入。

标签: sql sql-server triggers


【解决方案1】:

您的更新需要:

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

【讨论】:

  • 发布代码时,突出显示它并点击{},或缩进四个空格 - 比自己添加 html 标记要容易得多(我们会得到语法突出显示)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-09
  • 1970-01-01
  • 2016-08-24
  • 2014-08-22
  • 1970-01-01
相关资源
最近更新 更多