我的电话号码如下1500,并且在插入记录后,我希望电话号码增加到1501。

这是我的桌子:

CREATE TABLE QuoteTable2
(
    QuoteID int IDENTITY (1,1) NOT NULL
 , QNumber varchar(1500),

);

这是我的触发器:
create TRIGGER tr_no ON quotetable2
    AFTER INSERT
    AS

    BEGIN
      UPDATE QuoteTable2
      SET QNumber = inserted.QNumber +1
      FROM inserted
      WHERE quotetable2.QuoteID = inserted.QuoteID;
    END
   GO

我的结果总是与下面的数字相同:
QuoteID          QNumber
1                1501
1                1501

我如何修改触发器以每次增加1?在示例中quoteID和Qnumber都相同-格式很抱歉

最佳答案

您正在从插入的值1500更新该值,因此它始终为1501。

您需要从源表QuoteTable2中获取值,而不是从inserted中获取值:

  UPDATE q
  SET q.QNumber = q.QNumber +1
  FROM QuoteTable2 as q
  INNER JOIN inserted AS i ON q.QuoteID = i.QuoteID;

我建议将该列声明为IDENTITY列,以使其自动递增。

08-25 19:59