更新不同表中的单个列后的SQL触发器

时间:2019-01-17 12:19:30

标签: sql sql-server triggers

我正在创建一个SQL触发器,我需要在第一个表上对其进行更新后将记录插入到另一个表中。

我有下表。

队列表:

Queue table

Bin table

enter image description here

到目前为止,我有以下未编译的SQL查询。

CREATE TRIGGER dbo.MoveBinToQueue
    ON dbo.Bins
    AFTER UPDATE
AS
IF UPDATE(Status_StatusId)
BEGIN
    INSERT INTO dbo.Queues
    (
        Prio,
        Time
        Bin_BinId,
        Goal_GoalId
    )
    SELECT
         20,
         GETDATE(),
         inserted.Status_StatusId,
         inserted.Goal_GoalId
         )
END

1 个答案:

答案 0 :(得分:1)

您需要一个FROM子句:

CREATE TRIGGER dbo.MoveBinToQueue
    ON dbo.Bins
    AFTER UPDATE
AS
BEGIN
    IF UPDATE(Status_StatusId)
    BEGIN
        INSERT INTO dbo.Queues (Prio, Time, Bin_BinId, Goal_GoalId )
            SELECT 20, GETDATE(), inserted.Status_StatusId, inserted.Goal_GoalId
            FROM inserted;
    END
END;