Angenommen, eine gespeicherte Prozedur auf MSSQL Server verwendet eine SQL-Transaktion mit BEGIN TRANSACTION/COMMIT TRANSACTION
, wie unterscheidet sich das von Anfang und Commit eines mit ADO.NET über SqlConnection.BeginTransaction()
?Was ist der Unterschied zwischen einer SQL-Transaktion auf der Ebene der gespeicherten Prozedur und einer SQL-Verbindung auf der Ebene der SQL-Verbindung?
Antwort
Für ADO.NET ist es kein Unterschied. Es ist implizit in MSDN angegeben, wo für SqlTransaction-Objekt die Commit-Methode "fehlschlägt, wenn die Transaktion bereits auf dem Server zurückgesetzt wurde".
Außerdem zeigt SQL Server Profiler "SET TRANSACTION ISOLATION EBENE READ COMMITTED; BEGIN TRAN" an, sobald Sie .BeginTransaction für eine Verbindung ausführen.
Für ADO (nicht .NET) ist es jedoch nicht. Das ermöglichte nette Szenarien mit effektiv verschachtelten Transaktionen (Server-Transaktionen wurden in Client-Transaktionen verschachtelt). Obwohl ich das oft benutzt habe, kann ich nicht genau definieren, was eine "Kundentransaktion" in diesem Fall war.
Wenn Sie mehrere gespeicherte Prozeduren nacheinander aufrufen und ein Rollback durchführen möchten, müssen Sie die Transaktion mithilfe von SqlConnection.BeginTransaction() aus Ihrem Code verwalten. Ansonsten ist es dasselbe.
- 1. Was ist der Unterschied zwischen Dim auf der Mitgliederebene und statisch auf der Verfahrensebene?
- 2. Was ist der Unterschied zwischen einer gespeicherten Prozedur und einer Tabellenwertfunktion?
- 3. Was ist PIC-Ebene in der Programmzusammenstellung?
- 4. Was ist der Unterschied zwischen einer Subroutine und einer Funktion?
- 5. Was ist eine "if" Aussage auf der Ebene von Transistoren?
- 6. Was ist der Unterschied zwischen einer Portnummer und einer Protokollnummer?
- 7. Was ist der Unterschied zwischen einer Eigenschaft und einer Instanzvariablen?
- 8. Was ist der Unterschied zwischen einer "nonce" und einer "GUID"?
- 9. Was ist der Unterschied zwischen einer HashMap und einer TreeMap?
- 10. Was ist der Unterschied zwischen einer Webreferenz und einer Servicereferenz?
- 11. Was ist der Unterschied zwischen:
- 12. Was ist der Unterschied zwischen der JSP und der JSTL?
- 13. Verringern der Anzahl der Vergleiche in einer gespeicherten SQL-Prozedur
- 14. Was ist der Unterschied zwischen einer Systemeigenschaft und Umgebungsvariable
- 15. Catch SqlException auf der Controller-Ebene?
- 16. Was ist der Unterschied zwischen einem Ausdruck und einer Aussage?
- 17. Was ist der Unterschied zwischen einem Animator und einer Animation?
- 18. Runde Säulen basierend auf der zweiten Ebene der Mehrspaltige
- 19. Zeitscheibe auf der zweiten Ebene des Multiindex
- 20. Was ist der Unterschied zwischen einem Benutzer und einer Rolle?
- 21. Filtern der Ergebnismenge einer gespeicherten Prozedur
- 22. map() nur auf der ersten Ebene der Kinder
- 23. Was ist mehr zwischen einer gespeicherten Prozedur und einer Ansicht?
- 24. Was ist der Unterschied zwischen `==` und `ist`?
- 25. Terminologie: Was ist der Unterschied zwischen einer Klasse und einer Komponente?
- 26. Was ist der Unterschied zwischen Verilog! und ~?
- 27. Was ist der Unterschied zwischen:.! und: r !?
- 28. Was ist der Unterschied zwischen der nicht statischen Methode und der statischen Methode einer abstrakten Klasse?
- 29. Was ist der Unterschied zwischen der Verwendung von Dekoratoren und der Erweiterung einer Unterklasse durch Vererbung?