Как вставить в разные базы данных таблицы при одной и той же транзакции на триггере в sql server? - PullRequest
0 голосов
/ 19 мая 2019

У меня есть триггер на UPDATE, который должен вставить строку в две таблицы разных баз данных, если я прокомментирую второе утверждение INSERT, оно работает, если я его не имею, то оно вообще не работает, как я могу решить это?

Вот код:

    BEGIN TRY                                   
    BEGIN TRANSACTION
        -- MANAGER Table
        INSERT INTO DATABASE1.dbo.TABLE (
            IDTARJETA, CAJA, FECHA, TIPO, CODIGO, DESCRIPCION, PUNTOS, CONSUMICIONES,
            IMPORTE, TICKETS, Z, SERIE, NUMERO, N, ALIAS
        )
        VALUES
        (
            @idTarjeta, @caja, @fecha, 1, 0, @descripcion, @puntos, 1,
            @saldo_recargado, 1, 0, @serie, @numero, 'B', ' '
        );

        -- DBFREST Table
        INSERT INTO DATABASE2.dbo.TABLE (
            IDTARJETA, CAJA, FECHA, TIPO, CODIGO, DESCRIPCION, PUNTOS, CONSUMICIONES,
            IMPORTE, TICKETS, Z, SERIE, NUMERO, N, ALIAS
        )
        SELECT
            IDTARJETA, CAJA, FECHA, TIPO, CODIGO, 
            DESCRIPCION, PUNTOS, CONSUMICIONES,
            IMPORTE, TICKETS, Z, SERIE, NUMERO, N, ALIAS
        FROM DATABASE1.dbo.TABLE 
        WHERE NUMERO = @numero
        AND SERIE = @serie;
    COMMIT
END TRY
BEGIN CATCH
    INSERT INTO DATABASE1.dbo.APPS_ERRORS
    VALUES
    (   
        SUSER_SNAME(),
        ERROR_NUMBER(),
        ERROR_STATE(),
        ERROR_SEVERITY(),
        ERROR_LINE(),
        ERROR_PROCEDURE(),
        ERROR_MESSAGE(),
        GETDATE()
    );
    ROLLBACK TRANSACTION
END CATCH
...