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# 中使用 hibernate 执行此操作。那可能吗?

4

1 回答 1

0

看看 NHibernate 的事件系统,或者可能是旧的 IInterceptor 概念: http ://nhibernate.info/doc/nh/en/index.html#events

使用合适的事件处理程序,您应该能够检测到何时将发生更新,并在这种情况下插入包含旧信息的行。

于 2012-09-11T08:10:58.803 回答