Как выполнить безошибочную транзакцию при запросе через сервер ссылок? - PullRequest
0 голосов
/ 30 января 2020

У меня есть приложение vb. net, которое выполняет более 3 запросов одновременно. Специально для запроса INSERT.

Код:

Sub PerformSave()
  Using cmd as new SqlCommand(query1,conn)
     cmd.ExecuteNonQuery()
  End Using

  Using cmd as new SqlCommand(query2,conn)
     cmd.ExecuteNonQuery()
  End Using

  Using cmd as new SqlCommand(query3,conn)
     cmd.ExecuteNonQuery()
  End Using
End Sub

Меня больше всего беспокоит то, что я заметил, что после того, как 1-й запрос успешно выполнил inte rnet соединение было потеряно, а остальные транзакции не выполнены. Все, что я хочу, - если первый запрос не прошел, остальное также должно быть не выполнено, причина в том, что все данные связаны друг с другом, но хранятся в разных таблицах.

1 Ответ

1 голос
/ 30 января 2020

Вы должны использовать транзакции здесь. Вы можете заключить весь код в одну транзакцию. если ваше приложение потеряло соединение с базой данных перед фиксацией, все еще работающие транзакции будут откатаны и прерваны. Пожалуйста, перейдите по следующей ссылке, чтобы узнать больше о сделках https://docs.microsoft.com/en-us/sql/t-sql/language-elements/transactions-transact-sql?view=sql-server-ver15

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