我的电话号码如下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
列,以使其自动递增。