【发布时间】:2020-05-26 15:30:52
【问题描述】:
我有以下疑问:
INSERT INTO LOAN (MemberSSN, VolumeID, LoanDate)
OUTPUT inserted.MemberSSN, inserted.VolumeID, inserted.LoanDate
VALUES ('488-40-', 2, GETUTCDATE())
我想要一个触发器,在插入 LOAN 表时,会执行以下查询 - 插入到 VOLUME_VOLUME_STATUS 表中:
INSERT INTO VOLUME_VOLUME_STATUS (VolumeID, StatusID, DateCreated)
VALUES (>>previouslyInsertedVolumeID<<, 2, getutcdate())
如您所见,我不确定如何告诉 SQL 刚刚插入的VolumeID,即2。
下面是我写的触发器:
CREATE TRIGGER LoanStatusUpdate_OnLoaning
AFTER INSERT
ON LOAN
BEGIN
INSERT INTO VOLUME_VOLUME_STATUS (VolumeID, StatusID, DateCreated)
VALUES (>>previouslyInsertedVolumeID<<, 2, getutcdate())
END
因此,应该将什么作为VolumeID 列的值传递,以便该参数是激活触发器之前来自INSERT 的参数?
在上一个触发器中发现了一些错误。这是具有固定语法错误的那个:
CREATE TRIGGER LoanStatusUpdate_OnLoaning
ON LOAN
AFTER INSERT
AS
INSERT INTO VOLUME_VOLUME_STATUS (VolumeID, StatusID, DateCreated)
VALUES (New.VolumeID, 2, getutcdate())
GO
【问题讨论】:
标签: sql-server database-trigger