Обновление триггера приводит к ошибке - PullRequest
0 голосов
/ 08 февраля 2012

У меня есть триггер, но когда он пытается запустить, я получаю

Обновленные или удаленные значения строки либо не делают строку уникальной ...

Я хочу обновить таблицу при обновлении столбца REDEEMED в сработавшей таблице.

Что мне нужно изменить в моем триггере, чтобы эта работа работала?

Table GeneratedCouponCounter:

    Id int (primary key)
    CouponId int
    NrOfRedeemedCoupons int
    NrOfGeneratedCoupons int
    LastGenerated datetime
    LastRedeemed datetime
    CreatedOn datetime

Триггер:

CREATE TRIGGER trigger_update
ON GeneratedCoupon2
AFTER UPDATE
AS
    IF( UPDATE(REDEEMED))
    begin        
        update GeneratedCouponCounter
        SET NrOfRedeemedCoupons = NrOfRedeemedCoupons +1,[LastRedeemedOn] = getdate()
        where CouponId IN (SELECT CouponID from INSERTED)
    end

Спасибо!

/ Майк

1 Ответ

0 голосов
/ 08 февраля 2012

Создание PRIMARY KEY в таблице GeneratedCoupon2, а также часть WHERE обновления приведет к ошибкам при обновлении нескольких записей в таблице GeneratedCoupon2.Измените его на:
where CouponId IN (SELECT CouponID from INSERTED)

РЕДАКТИРОВАТЬ: Изменено имя таблицы, где KEY необходим для отражения решения проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...