如何在SQL Server的触发器上的同一事务中的不同数据库表上插入?

时间:2019-05-18 21:49:07

标签: tsql sql-server-2016

我在UPDATE上有一个触发器,该触发器必须在不同数据库的两个表中插入一行,如果我对第二条INSERT语句进行注释,如果不起作用,则根本不起作用,该如何解决呢? / p>

代码如下:

    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

0 个答案:

没有答案