Meine Frage ist einfach: Was sind die Unterschiede / Ähnlichkeiten / Kardinalitäten zwischen
- Transaktionen
- Chargen
- Anschlüsse und
- Aussagen
in SQL Server?
Soweit ich weiß, ist eine Verbindung ein einzelner Kommunikationskanal zwischen einer SQL Server-Instanz und einem Client, in dem Sammlungen von Anweisungen ausgeführt werden, die als Stapel gruppiert sind. Ein Stapel wird entweder implizit oder explizit einer oder mehreren Transaktionen zugeordnet. Ist das richtig?
Transaktionen und Stapel sind zwei unabhängige Konzepte. Beide können in einer Eins-zu-Viele-Konfiguration verwendet werden.
Transaktionsblöcke sind eine einzelne "Arbeitseinheit", ein Konzept, bei dem festgeschriebenes SQL entweder vollständig oder überhaupt nicht funktionieren muss. Wenn Sie beispielsweise zwei miteinander verknüpfte Tabellen aktualisieren; Beide müssen erfolgreich sein, damit die Datenänderung festgeschrieben werden kann. [ https://msdn.microsoft.com/en-us/library/ms174377.aspx]
Batch ist ein Microsoft-Konzept. Mit den von Microsoft erstellten Tools wie sqlcmd und osql stellt der Stapel einfach einen einzelnen Ausführungsplan sicher. Wenn Sie beispielsweise eine Variable erstellen und außerhalb des Stapels verwenden, gibt das Tool einen Fehler aus. [ https://msdn.microsoft.com/en-us/library/ms188037.aspx]
Sie können also mehrere Stapel haben, die mehrere Tabellen in einem Transaktionsblock aktualisieren. Soweit sie nicht gegen einzelne Batch-Ausführungspläne verstoßen.
Innerhalb eines Stapels können Sie auch mehrere Transaktionsblöcke haben, um die Datenintegrität zwischen Datenbankentitäten wie Tabellen sicherzustellen.
Die Verbindung ist einfach der Kommunikations-Handshake, mit dem Abfragen auf dem Server ausgeführt werden.
Anweisungen sind einzelne Zeilen, die eine Abfrage bilden. GO (T-SQL-Batch-Separator) und BEGIN TRANSACTION (ANSI SQL zum Starten eines neuen Transaktionsblocks) sind beide Anweisungen.
quelle
Stapel und Transaktionen existieren auf derselben Ebene. Ein Stapel ist eine Sammlung von ansonsten nicht verwandten SQL-Befehlen. Eine Transaktion ist eine Sammlung von SQL-Befehlen, die (für alle anderen Benutzer dieser Datenbank) als eine Anweisung ausgeführt werden.
quelle