TOP 100 INSERT INTO связанный сервер из локальной таблицы, а затем удалить вставленные строки в локальной таблице? - PullRequest
0 голосов
/ 13 ноября 2018

Кто-нибудь знает, как это сделать? Прямо сейчас я создал триггер на локальной таблице:

CREATE TRIGGER TRG_AUD_DEL
ON [LocalTable]
FOR DELETE
AS
    INSERT INTO [LinkedServerTable] (columns, columns2)
        SELECT
            (Columns, Columns2)
        FROM DELETED

Тогда я выполню запрос вроде:

DELETE TOP 100 from [LocalTable]

Однако моя проблема в том, что произойдет, если вставка в не работает? Например, из-за тайм-аута или сбоя связанного сервера Будет ли удалена запись в локальной таблице? (Чего, надеюсь, не будет)

1 Ответ

0 голосов
/ 13 ноября 2018

В случае сбоя триггера транзакция вся откатывается.Это означает, что если INSERT к связанному серверу в триггере завершится неудачно, DELETE также будет откатан, а строки не будут удалены.

...