こんにちは、次のトリガーがあります。
ALTER TRIGGER [dbo].[BOOKVERNR_UPDATE]
ON [dbo].[BUCHUNG]
INSTEAD OF UPDATE
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [BUCHUNG] (BOOKUID, BOOKVERNR, BUCHUNGSART_ID, VERANSTALTER, PERSONAL_ID,
OPTIONSNUMMER, BUCHUNGSSTATUS, PERSONENZAHL, SERIE, THEMA, STORNO, UPDATE_DATE, UPDATE_USER, BEMERKUNG, V_EMAIL, V_TELEFON,
KOSTENSTELLE, SERIENBOOKUID, THEMA_ENABLED, ABTEILUNG, LIEFERRAUM, PERSONENZAHLEXTERN, ABRECHNUNG, KSTR, RECHKONTO, RECHKST, RECHDST, URSPRUNG_ORIGINAL, ORIGINAL_ID)
SELECT i.BOOKUID, '0', i.BUCHUNGSART_ID, i.VERANSTALTER, i.PERSONAL_ID,
i.OPTIONSNUMMER, i.BUCHUNGSSTATUS, i.PERSONENZAHL, i.SERIE, i.THEMA, i.STORNO, GETDATE(), i.UPDATE_USER, i.BEMERKUNG, i.V_EMAIL, i.V_TELEFON,
i.KOSTENSTELLE, i.SERIENBOOKUID, i.THEMA_ENABLED, i.ABTEILUNG, i.LIEFERRAUM, i.PERSONENZAHLEXTERN, i.ABRECHNUNG, i.KSTR, i.RECHKONTO, i.RECHKST, i.RECHDST, i.URSPRUNG_ORIGINAL,
i.ORIGINAL_ID
FROM INSERTED i
JOIN DELETED d ON i.ID = d.ID
WHERE i.BOOKVERNR <> d.BOOKVERNR
SET NOCOUNT OFF;
END
「BOOKVERNR」の更新が発生すると、トリガーは行全体を新しい ID でコピーします。「BOOKVERNR」で更新が発生した場合にのみ、新しい行が挿入されます。
私の問題は、そのトリガーでは、例「IF UPDATE (BOOKUID)」を除いて他の列を更新できないことです。しかし、それは私が望むものではありません。
各列に「IF UPDATE」を使用せずに、他のすべての列を更新できるように、トリガーをカスタマイズする方法はありますか?