如何使用触发器在另一个表中选择一个值

时间:2016-12-02 03:08:07

标签: sql sql-server sql-server-2008 triggers

我只是在SQL Server中的另一个表中调用一个值,但是我遇到了一些问题:

CREATE TRIGGER [dbo].[IdHeadOtomatis] 
ON [dbo].[RollsNumberSimulation]
FOR INSERT, UPDATE
AS
BEGIN
    UPDATE [RollsNumberSimulation] 
    SET IdHead = (SELECT IdHead 
                  FROM NewCutPlan 
                  WHERE [IdNewCutPlan] = IdNewCutPlan)
    WHERE [IdRollNumber] IN (SELECT [IdRollNumber] FROM Inserted)
END

可插入此查询但插入" IdNewCutPlan"此屏幕截图中的错误。

screenshot

请帮忙,

谢谢, 邦

1 个答案:

答案 0 :(得分:0)

根据您的错误消息,问题是您正在尝试将单个值与多个值进行比较,特别是您的子查询返回多个值:

select IdHead from NewCutPlan where [IdNewCutPlan]=IdNewCutPlan

问题可能是你的谓词WHERE [IdNewCutPlan]=IdNewCutPlan总是评估为真,你可能刚刚写了WHERE 1=1。也许你的意思是其中一个是文字字符串'IdNewCutPlan',但没有更多信息你真正试图用你的触发器做什么很难猜测。