0

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

    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

BOOKVERNR の更新が発生した場合、トリガーは行全体を新しい ID で複製します。私の質問は、どうすれば休止状態でそれを行うことができますか? データベース トリガーを使用したくありません。休止状態を使用して C# で直接実行したいと考えています。それは可能ですか?

4

1 に答える 1

0

NHibernate のイベント システム、またはおそらく古い IInterceptor の概念をご覧ください: http://nhibernate.info/doc/nh/en/index.html#events

適切なイベント ハンドラーを使用すると、更新が行われる時期を検出し、その場合は古い情報を含む行を挿入できるはずです。

于 2012-09-11T08:10:58.803 に答える