SQL Server INSERT INTO с использованием транзакции - PullRequest
1 голос
/ 28 мая 2019

Я использую SQL Server. У меня есть хранимая процедура, которая делает следующее:

INSERT INTO Tbl1
    SELECT col1, col2, col3 
    FROM Tbl2

Мой вопрос: нужна ли транзакция с коммитом? Из-за того, что я смотрю онлайн, это не так. У меня будет это как часть ночного пакетного процесса, поэтому я хочу убедиться, что он ведет себя правильно. Должен ли я сделать попытку поймать в этом случае?

1 Ответ

2 голосов
/ 28 мая 2019

Если у вас есть только это утверждение, это не имеет значения, потому что неявно это transaction. В случае сбоя он не вставит никаких строк, но в другом случае он внесет изменения. У вас может быть сценарий, когда в начале вашей процедуры вы удаляете строки, а затем вставляете строки в таблицу. В таком случае было бы хорошо заключить его в одну транзакцию. Благодаря этому, когда delete завершается успешно, но insert терпит неудачу, у вас все равно будут данные в вашей таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...