TSQL: транзакция выгоды попытки в триггере

Нет, все репозитории доступны только для чтения анонимным пользователям. По умолчанию только владелец хранилища имеет право на запись. Если вы можете перейти к собственному репо, то это потому, что вы используете один из поддерживаемых методов аутентификации (HTTPS, SSH, ...).

Если вы хотите предоставить кому-то еще права на репозиторий, вам необходимо настроить этот доступ в настройках проекта.

Чтобы внести свой вклад в проекты, в которых у вас нет push-доступа, вы нажимаете на свою собственную копию репо, а затем запрашиваете pull-запрос. Linux не является хорошим примером для этого, потому что разработчики ядра не используют пул-запросы GitHub.

14
задан gbn 20 May 2009 в 04:28
поделиться

4 ответа

Не выполнять откат в триггере, и нет необходимости начинать транзакцию.

ROLLBACK TRANSACTION откатит исходный триггер DML и также дополнительная транзакция триггера. Таким образом, пакет будет прерван

Edit:

Я предлагаю не иметь "RETURN" в вашем блоке catch и просто позволить коду завершить Я никогда не игнорировал захваченную ошибку в триггере (но я использую TRY / CATCH в триггерах с откатом и повышением ошибки для повторного выброса), так что это предположение, но возврат, вероятно, является ненормальным условием выхода в триггере

Кроме того, в первую очередь постарайтесь избежать состояния ошибки. Измените - еще немного sql , чтобы избежать ошибки. Например, добавьте , если существует (... , чтобы сначала проверить наличие дубликата или аналогичного

8
ответ дан 1 December 2019 в 12:01
поделиться

In my experience any error caught in a try catch in a trigger will rollback the entire transaction; you may be able to use a save transaction. I think you need to look at whats happening in "Some more sql" and determine if you can write case / if statements around it to stop the error.

What you may be able todo depending on what you are doing is use a save transaction and capture that in the catch

In your code something like this

SAVE TRANSACTION BeforeUpdate;
BEGIN TRY
        --Some More SQL
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION BeforeUpdate;
        return
END CATCH
8
ответ дан 1 December 2019 в 12:01
поделиться

u07ch,

Unfortunately you cannot use save transaction and try.. catch together - they simply cannot work together:

http://sqlblog.com/blogs/alexander_kuznetsov/archive/2008/11/15/avoid-mixing-old-and-new-styles-of-error-handling.aspx

1
ответ дан 1 December 2019 в 12:01
поделиться

Может быть полезно знать, что вы пытаетесь сделать в триггере.

Триггер - это часть транзакции, которая отправляла данные во вставленные или удаленные таблицы. Если это не удастся, он откатит всю транзакцию.

1
ответ дан 1 December 2019 в 12:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: