-1

私は次のトリガーを持っています:

 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, ABRECHNUNG, KSTR, RECHKONTO, 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.ABRECHNUNG, i.KSTR, i.RECHKONTO, i.RECHDST, i.URSPRUNG_ORIGINAL,
        i.ORIGINAL_ID


        FROM INSERTED i 
        JOIN DELETED d ON i.ID = d.ID
        WHERE i.BOOKVERNR <> d.BOOKVERNR


        IF UPDATE (BOOKVERNR)

        UPDATE b
        SET BOOKVERNR = i.BOOKVERNR 
        FROM BUCHUNG b
        JOIN INSERTED i ON i.ID = b.ID

SET NOCOUNT OFF;      
END 

元の行が変更された場合、Trigger は行全体を新しい ID でコピーします。これまでのところ、問題なく動作しています。しかし、PERSONENZAHL_EXTERN と RECHKST が正しくないため、何か問題が発生しています。

写真を見てください: 画像

最初の行は古い行です。2 行目は挿入された行です。何が悪いのかわかりません。多分あなたはそれで私を助けることができます。

前もって感謝します

4

1 に答える 1

1

あなたの挿入ステートメントには、これらの2つの列が欠けています。それらを追加すると、値が得られます。

于 2012-08-29T11:22:17.130 に答える