У нас есть несколько списков данных, которые извлекаются в нашем приложении через SqlCommand, выполняя запрос SELECT
в базе данных SQL Server. Мы явно не устанавливаем транзакцию на SqlCommand, а просто передаем ей SqlConnection и запускаем ее. В случае, если транзакция не указана, что SQL Server будет инициировать и использовать транзакцию по умолчанию с значением IsolationLevel по умолчанию ReadCommitted
?Выполнение SQLCommand без указания транзакции
ответ
SQL Server может работать без явной транзакции. Но да, я считаю, что это, по сути, чтение (если, конечно, вы не добавляете дополнительные подсказки к объектам запроса, например UPDLOCK
/NOLOCK
). Вы можете изучить этот вопрос с:
DBCC USEROPTIONS
, который показывает (среди прочих):
isolation level read committed
SQL создает транзакцию неявно для отчетности, и эта сделка совершается, когда завершает заявление. Уровень изоляции этой транзакции будет текущим уровнем изоляции, который по умолчанию соответствует READ COMMITTED. Некоторые операторы перезаписывают текущий уровень изоляции и обеспечивают выполнение READ COMMITTED (например, RECEIVE).
Если ваш SqlCommand выполняет пакет (больше операторов), то каждый оператор, который получает таблицы доступа, создает свою собственную транзакцию.
По умолчанию autocommit of transactions управляется путем изменения SET IMPLICIT_TRANSACTION ON.
Для получения более подробной информации см. Controlling Transactions.
- 1. Выполнение без транзакции в TransactionScope
- 2. Параметрированный SqlCommand - преимущество указания SqlDbType?
- 3. Выполнение Gradle завершается без указания причины
- 4. Как установить уровень изоляции на SqlCommand/SqlConnection, инициализированный без транзакции
- 5. SQLCommand Object для указания подсказки запроса
- 6. Выполнение транзакции с платформой воспроизведения
- 7. Выполнение транзакции с корпоративной библиотекой
- 8. Выполнение транзакции Sql в транзакции
- 9. Выполнение сценариев Python выполняется в Windows без указания расширения «.py»
- 10. Elasticsearch - Что будет варьироваться использовать фильтр без указания «выполнение»
- 11. Почему вставка 1M записей медленнее без транзакции, чем внутри транзакции?
- 12. Удалить массив без указания
- 13. Конец без указания
- 14. Выбирайте без указания по
- 15. Как я могу проверить выполнение запроса без ошибок в транзакции?
- 16. Выполнение действий без базы данных в транзакции в Slick 3
- 17. Выполнение транзакции Stripe без JS для извлечения токена
- 18. Выполнение записи атомарного файла в файловой системе без транзакции
- 19. Сделка прочитана без указания в SQL Server
- 20. Выполнение транзакции в цикле datareader
- 21. Выполнение транзакции отката в WP7
- 22. Выполнение кода вне транзакции обновления
- 23. Выполнение запросов и триггеров во внутренней транзакции
- 24. Выполнение двух разных запросов в одной транзакции
- 25. Выполнение принудительного запроса без флеша/фиксации
- 26. Java - Thread Остановка без указания
- 27. require_once работает без указания пути
- 28. Метод вызова без указания параметров
- 29. Upsert без указания всех параметров
- 30. Makefile без указания исходного файла
Возможно, у меня такая же проблема: http://stackoverflow.com/questions/41096727/is-there-an-implicit-transaction-in-sqlcommand-executenonquery – VansFannel