Я попытался создать триггер для хранения манипуляций с данными, сделанными на моей таблице Food
, в другой таблице с именем FoodTriggerTable
. Когда я вставляю только одну строку данных, я могу хорошо записать манипуляции с данными в FoodTriggerTable
. Однако, когда я вставляю несколько строк одновременно, я сохраняю информацию только первой строки данных. У меня есть следующий триггер:
CREATE TRIGGER InsertFoodTrigger ON Food
AFTER INSERT
AS
DECLARE @FoodID varchar(5);
DECLARE @FoodName nvarchar(50);
DECLARE @FoodDesc nvarchar(200);
DECLARE @FoodPrice money;
DECLARE @InsertAction varchar(200);
DECLARE @InsertActionTime datetime;
DECLARE @Amount int;
SELECT @FoodID = i.FoodID FROM INSERTED i;
SELECT @FoodName = i.FoodName FROM INSERTED i;
SELECT @FoodDesc = i.FoodDesc FROM INSERTED i;
SELECT @FoodPrice = i.FoodPrice FROM INSERTED i;
SELECT @Amount = COUNT(*) FROM INSERTED i;
SET @InsertAction = 'You''ve inserted ' + CONVERT(varchar(10), @Amount) + ' data into ''Food'' table';
INSERT INTO FoodTriggerTable (FoodID, FoodName, FoodDesc, FoodPrice, InsertAction, InsertActionTime)
VALUES (@FoodID, @FoodName, @FoodDesc, @FoodPrice, @InsertAction, GETDATE());
GO
И я попробовал следующее INSERT
:
INSERT INTO Food
VALUES ('CH006', 'Dummy Data 1', 'Dummy data', '0', '34'),
('CH007', 'Dummy Data 2', 'Dummy data', '0', '75');
Как исправить мой триггер, чтобы он также записывал второй ряд манипуляций с данными?