Tenemos algunas listas de datos que se obtienen en nuestra aplicación a través de un SqlCommand realizando una consulta SELECT
en una base de datos de SQL Server. No configuramos explícitamente una transacción en el SqlCommand, sino que le pasamos un SqlConnection y lo ejecutamos. ¿Es el caso que cuando no se especifica ninguna transacción, SQL Server iniciará y usará una transacción predeterminada con IsolationLevel por defecto de ReadCommitted
?Ejecutando un SQLCommand sin especificar una transacción
Respuesta
SQL Server puede funcionar felizmente sin una transacción explícita. Pero sí, creo que es esencialmente de lectura confirmada (a menos que, por supuesto, agregue pistas adicionales a sus objetos de consulta, como UPDLOCK
/NOLOCK
). Se pueden investigar esto con:
DBCC USEROPTIONS
que muestra (entre otros):
isolation level read committed
SQL crea una transacción implícita de sus estados de cuenta, y esta operación se comete cuando la declaración completa. El nivel de aislamiento de esta transacción será el nivel de aislamiento actual, que se establece de forma predeterminada en LEÍDO COMPROMETIDO. Ciertas declaraciones sobrescriben el nivel de aislamiento actual y hacen cumplir LEER COMPROMETIDO (por ejemplo, RECIBIR).
Si su SqlCommand ejecuta un lote (más declaraciones), cada instrucción que acceda a las tablas creará su propia transacción.
El valor predeterminado autocommit of transactions se controla al cambiar SET IMPLICIT_TRANSACTION ON.
Consulte Controlling Transactions para obtener más información.
- 1. ¿Cómo ejecuto una migración sin iniciar una transacción en Rails?
- 2. Reutilizando SqlCommand?
- 3. Ejecutando selenio con firefox sin una pantalla
- 4. ¿Puedo ser una víctima de interbloqueo si no estoy ejecutando una consulta dentro de una transacción?
- 5. Ejecutando PHP sin extensión sin usar mod_rewrite?
- 6. Ejecutando Selenium sin cabeza sin utilizar xvfb
- 7. Parámetros SqlCommand tamaño confusión
- 8. C# Ejecute un procedimiento sin especificar un nombre de parámetro
- 9. Ejecutando pruebas VSTS sin mstest.exe
- 10. SqlCommand o SqlDataAdapter?
- 11. SqlCommand (using/Eliminación tema)
- 12. Sql server COMMIT sin Tran | ¿Transacción?
- 13. impulso :: program_options: Cómo especificar un comando sin "-" o "-"
- 14. Definir un método abstracto sin especificar los parámetros
- 15. ¿Está bien registrar componentes en Windsor sin especificar una interfaz?
- 16. Django: ¿Crear elementos sin especificar una clave principal?
- 17. Obtenga un documento en MongoDB sin especificar la colección
- 18. Llamar a un plugin de jQuery sin especificar ningún elemento
- 19. ¿Cómo desinfecta SqlCommand los parámetros?
- 20. Cierre SqlConnection y SqlCommand C#
- 21. ¿Cómo puedo saber si he trabajado sin compromiso en una transacción de Oracle?
- 22. ¿Es posible agregar un elemento a una matriz en awk sin especificar un índice?
- 23. Confundido entre SqlCommand y SqlDataAdapter
- 24. TransactionScope no retrotraer transacción
- 25. SQLCommand/SQLConnection vs OleDbCommand/OleDbConnection
- 26. Transacción Ámbito Entidad con
- 27. Ejecutando una aplicación, compilada en cygwin, sin haber instalado cygwin
- 28. Stored Proc y SqlCommand Timeout
- 29. Ejecutando un comando de shell desde Node.js sin buffering salida
- 30. Transacción distribuida completada. O bien aliste esta sesión en una nueva transacción o la transacción NULA
Quizás tenga el mismo problema aquí: http://stackoverflow.com/questions/41096727/is-there-an-implicit-transaction-in-sqlcommand-executenonquery – VansFannel