Behandlung mehrerer Zeilen in SQL Server-Trigger

Wir haben eine Datenbank mit einer Tabelle namensWarehouseItem wo die Lagerbestände des Produkts gehalten werden. Ich muss wissen, wann immer diese Tabelle aktualisiert wird, also habe ich einen Auslöser erstellt, um den Primärschlüssel dieser Tabellenzeile abzulegen, die aktualisiert wurde. in eine separate Tabelle (wie ein Warteschlangensystem).

Das ist mein Auslöser:

IF ((SELECT COUNT(*) FROM sys.triggers WHERE name = 'IC_StockUpdate') > 0)
    DROP TRIGGER [dbo].[IC_StockUpdate]
GO
CREATE TRIGGER [dbo].[IC_StockUpdate] ON [dbo].[WarehouseItem]
AFTER UPDATE
AS
BEGIN

    -- Get Product Id
    DECLARE @StockItemID INT = (SELECT ItemID FROM INSERTED);
    DECLARE @WarehouseID INT = (SELECT WarehouseID FROM INSERTED);

    -- Proceed If This Product Is Syncable
    IF (dbo.IC_CanSyncProduct(@StockItemID) = 1)
    BEGIN

        -- Proceed If This Warehouse Is Syncable
        IF (dbo.IC_CanSyncStock(@WarehouseID) = 1)
        BEGIN

            -- Check If Product Is Synced
            IF ((SELECT COUNT(*) FROM IC_ProductCreateQueue WHERE StockItemID = @StockItemID) > 0)
            BEGIN

                -- Check If Stock Update Queue Entry Already Exists
                IF ((SELECT COUNT(*) FROM IC_StockUpdateQueue WHERE StockItemID = @StockItemID) > 0)
                BEGIN

                    -- Reset [StockUpdate] Queue Entry
                    UPDATE IC_StockUpdateQueue SET Synced = 0
                    WHERE StockItemID = @StockItemID;

                END
                ELSE
                BEGIN

                    -- Insert [StockUpdate] Queue Entry
                    INSERT INTO IC_StockUpdateQueue (StockItemID, Synced) VALUES
                    (@StockItemID, 0);

                END

            END
            ELSE
            BEGIN

                -- Insert [ProductCreate] Queue Entry
                INSERT INTO IC_ProductCreateQueue (StockItemID, Synced) VALUES
                (@StockItemID, 0);

                -- Insert [StockUpdate] Queue Entry
                INSERT INTO IC_StockUpdateQueue (StockItemID, Synced) VALUES
                (@StockItemID, 0);

            END

        END

    END

END
GO

Dies funktioniert einwandfrei, wenn nur eine einzelne Zeile in der Tabelle "WarehouseItem" aktualisiert wird. Wenn jedoch mehr als eine Zeile in dieser Tabelle aktualisiert wird, kann mein Auslöser dies nicht verarbeiten:

Gibt es eine Möglichkeit, die "eingefügte" Auflistung nach einem Massenaktualisierungsereignis zu durchlaufen? Oder wie geht man mit mehreren Zeilenaktualisierungen im Trigger um?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage