Код:
-- создать две таблицы
CREATE TABLE TABLE_2 (ID INT NOT NULL IDENTITY (1,1), ProdName УАКСНАК (50))
CREATE TABLE TABLE_1 (ProdName VARCHAR (50), Купленный INT)
ИДТИ
-- создать триггер на "ТАБЛИЦА 2" обновить "ТАБЛИЦА 1"
CREATE TRIGGER T2Insert
ON TABLE_2
ПОСЛЕ ВСТАВКА
В ВИДЕ
UPDATE T1
SET Купил = Купил + 1
ОТ TABLE_1 T1
INNER JOIN вставленной я ON T1.ProdName = i.ProdName
ГДЕ T1.Bought < 100
ИДТИ
-- инициализировать TABLE_1 с некоторыми данными семян
INSERT INTO dbo.TABLE_1 (ProdName, Купленный)
ЗНАЧЕНИЯ ( 'Prod1', 0), ( 'Prod2', 20), ( 'Prod3', 40), ( 'Prod4', 40), ( 'Prod100', 100)
-- вставить новые значения в TABLE_2
INSERT INTO dbo.TABLE_2 (ProdName)
VALUES ( 'Prod1'), ( 'Prod100'), ( 'Prod2'), ( 'Prod4')
-- получить данные для проверки
SELECT * FROM dbo.TABLE_1
CREATE TABLE TABLE_2 (ID INT NOT NULL IDENTITY (1,1), ProdName УАКСНАК (50))
CREATE TABLE TABLE_1 (ProdName VARCHAR (50), Купленный INT)
ИДТИ
-- создать триггер на "ТАБЛИЦА 2" обновить "ТАБЛИЦА 1"
CREATE TRIGGER T2Insert
ON TABLE_2
ПОСЛЕ ВСТАВКА
В ВИДЕ
UPDATE T1
SET Купил = Купил + 1
ОТ TABLE_1 T1
INNER JOIN вставленной я ON T1.ProdName = i.ProdName
ГДЕ T1.Bought < 100
ИДТИ
-- инициализировать TABLE_1 с некоторыми данными семян
INSERT INTO dbo.TABLE_1 (ProdName, Купленный)
ЗНАЧЕНИЯ ( 'Prod1', 0), ( 'Prod2', 20), ( 'Prod3', 40), ( 'Prod4', 40), ( 'Prod100', 100)
-- вставить новые значения в TABLE_2
INSERT INTO dbo.TABLE_2 (ProdName)
VALUES ( 'Prod1'), ( 'Prod100'), ( 'Prod2'), ( 'Prod4')
-- получить данные для проверки
SELECT * FROM dbo.TABLE_1
Триггер работает отлично. Однако, если вставить что-то вроде этого на TABLE_2:
Код:
INSERT INTO dbo.TABLE_2 (ProdName)
VALUES ( 'Prod1'), ( 'Prod1')
VALUES ( 'Prod1'), ( 'Prod1')
Это только обновляется один раз. в основном SET Купил = Купил + 1 обновления один раз вместо двух / или независимо от числа значений я пытаюсь вставить.
Если вы можете решить эту проблему, дайте мне знать, в резьбе и сколько $ вы ищете