Сведения о вопросе

Fhohir

03:16, 19th August, 2020

Теги

sql-server   tsql   triggers    

Триггер без транзакции?

Просмотров: 396   Ответов: 2

Можно ли создать триггер, который не будет в транзакции?

Я хочу обновить данные на связанном сервере с помощью триггера, но из-за проблем с брандмауэром мы не можем создать распределенную транзакцию между двумя серверами.



  Сведения об ответе

#hash

23:16, 28th August, 2020

Я знаю, что это не полезно, поэтому я, вероятно, буду понижен в должности за это, но на самом деле, решение заключается в устранении проблемы брандмауэра.

Я думаю, что если вы используете удаленные (не связанные) серверы (которые не являются предпочтительным вариантом в эти дни), то вы можете использовать SET REMOTE_PROC_TRANSACTIONS OFF, чтобы предотвратить использование DTC для удаленных транзакций, что может быть правильным здесь. Но это, вероятно, не поможет вам с подключенным сервером в любом случае.


  Сведения об ответе

fo_I_K

11:22, 22nd August, 2020

Вероятно, вы хотите получить комбинацию очереди, содержащей обновления для связанного сервера, и процесса, считывающего данные из очереди и обновляющего удаленный сервер. Затем триггер вставит сообщение в очередь как часть обычной транзакции. Эти данные будут считаны отдельным процессом и использованы для обновления удаленного сервера. Логика будет необходима в процессе обработки ошибок (и, возможно, повторных попыток).

Очередь может быть реализована с помощью одной или нескольких таблиц.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться