Abbiamo alcuni elenchi di dati che vengono recuperati nella nostra applicazione tramite un SqlCommand che esegue una query SELECT
su un database SQL Server. Non impostiamo esplicitamente una transazione su SqlCommand, invece di passarlo a SqlConnection ed eseguirlo. È il caso che quando non viene specificata alcuna transazione che SQL Server avvierà e utilizzerà una transazione predefinita con il valore predefinito IsolationLevel di ReadCommitted
?Esecuzione di un SQLCommand senza specificare una transazione
risposta
SQL Server può funzionare tranquillamente senza una transazione esplicita. Ma sì, credo che sia essenzialmente un read-committed (a meno che, naturalmente, non aggiungiate ulteriori suggerimenti agli oggetti della query, come ad esempio UPDLOCK
/NOLOCK
). È possibile esaminare questo con:
DBCC USEROPTIONS
che mostra (tra gli altri):
isolation level read committed
SQL crea una transazione in modo implicito per le sue dichiarazioni, e questa transazione è commesso quando l'istruzione completa. Il livello di isolamento di questa transazione sarà il livello di isolamento corrente, che di default è READ COMMITTED. Alcune affermazioni sovrascrivono l'attuale livello di isolamento e impongono READ COMMITTED (ad esempio RECEIVE).
Se SqlCommand esegue un batch (più istruzioni), ciascuna istruzione che accede alle tabelle creerà la propria transazione.
Il valore predefinito autocommit of transactions è controllato modificando SET IMPLICIT_TRANSACTION ON.
Vedere Controlling Transactions per ulteriori dettagli.
- 1. Devo chiamare Parameters.Clear quando riutilizzi un SqlCommand con una transazione?
- 2. Errore di transazione Magento "Specificare un metodo di spedizione"
- 3. Entity Framework senza transazione?
- 4. Come rollback senza transazione
- 5. Uncaught InvalidStateError: Impossibile eseguire 'transazione' on 'IDBDatabase': Una transazione cambio di versione è in esecuzione
- 6. Riutilizzare SqlCommand?
- 7. Una transazione richiede un tentativo di cattura?
- 8. Invio di numerosi comandi SQL in una singola transazione
- 9. Funzioni di chiamata in SqlCommand
- 10. Avviare un contenitore con finestra mobile senza specificare il comando
- 11. Perché un mysqldump con una singola transazione è più coerente di uno senza?
- 12. transazione Scope con Entity
- 13. SqlBulkCopy avvia automaticamente una transazione?
- 14. Transazione distribuita completata. O iscriviti questa sessione in una nuova transazione o nella transazione NULL
- 15. Esecuzione di azioni non di database in una transazione in Slick 3
- 16. Chiusura SqlConnection e SqlCommand C#
- 17. COMM_ Sql COMMIT senza Tran | Transazione?
- 18. Come specificare una costante int breve senza casting?
- 19. Django: crea proiettori senza specificare una chiave primaria?
- 20. Timeout memorizzato e SqlCommand Timeout
- 21. C# metodo generico senza specificare Tipo
- 22. Typedef una classe template senza specificare i parametri del modello
- 23. SqlCommand (istruzione using/problema Smaltimento)
- 24. Differenza tra una transazione di ibernazione e una transazione di database eseguita tramite query SQL?
- 25. SQLCommand/SQLConnection vs OleDbCommand/OleDbConnection
- 26. ottenere una transazione executeSql Webkit per restituire un valore
- 27. Come aggiungere una chiave valida senza specificare un valore in una std :: map?
- 28. Che cos'è una "transazione distribuita"?
- 29. passaggio di una funzione a un modulo senza specificare suoi argomenti
- 30. Utilizzare nameof su un membro di una classe generica senza specificare argomenti tipo
Forse ho lo stesso problema qui: http://stackoverflow.com/questions/41096727/is-there-an-implicit-transaction-in-sqlcommand-executenonquery – VansFannel