Ich frage mich, ob es möglich ist, mehrere DDL-Anweisungen innerhalb einer Transaktion auszuführen. Ich bin speziell an SQL Server interessiert, obwohl auch Antworten mit anderen Datenbanken (Oracle, zumindest PostgreSQL) interessant sein könnten.Ist es möglich, mehrere DDL-Anweisungen innerhalb einer Transaktion (innerhalb von SQL Server) auszuführen?
Ich habe einige "CREATE TABLE" und "CREATE VIEW" für die erstellte Tabelle innerhalb einer Transaktion gemacht und es scheint einige Inkonsistenzen zu geben und ich frage mich, ob die DDLs innerhalb der Transaktion nicht getan werden sollten. ..
Ich könnte wahrscheinlich die DDL außerhalb der Transaktion bewegen, aber Ich möchte eine Referenz dafür erhalten.
- MSDN-Seite Isolation Levels in the Database Engine sagt deutlich, dass gibt es Beschränkungen auf, was DDL-Operationen durchgeführt werden kann in einer expliziten Transaktion, die unter Snapshot-Isolation ausgeführt wird - aber ich bin nicht mit Snapshot-Isolation: Was habe ich bis jetzt dieses gefunden und das sollte als ein Fehler resultieren.
- Dies könnte so interpretiert werden, dass DDL-Operationen in einer expliziten Transaktion unter verschiedenen Isolationsstufen ausgeführt werden können?
Für Oracle:
- Innerhalb SO Unit testing DDL statements that need to be in a transaction Frage gesagt wird, dass Oracle implizit begeht eine DDL-Anweisung? (auch wenn keine Referenzen)
Wenn es etwas ausmacht, mache ich das mit Java über den JTDS JDBC-Treiber.
b.r. Touko
Ich benutze JDBC Verbindung # setAutoCommit (falsch) und die DML-Anweisungen sind nicht mit impliziten Transaktionen abgeschlossen. Die Ergebnisse scheinen eher so zu sein, dass die Tabelle zum Erstellen der Ansicht mit nicht immer da wäre oder so. – Touko
Für EDIT: Das könnte sein, aber ich hätte gerne einen Verweis auf SQL Server-Dokumentation oder etwas, ob es ist oder nicht erlaubt ist .. – Touko
Ich habe dieses Buch verwendet, sehen Sie, wenn Sie online finden? Microsoft® SQL Server® 2008 T-SQL-Grundlagen Drucken ISBN-10: 0-7356-2601-4 Drucken ISBN-13: 978-0-7356-2601-0 – Stuart