Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Ist es möglich, mehrere DDL-Anweisungen innerhalb einer Transaktion (innerhalb von SQL Server) auszuführen?

Ich weiß, dass die meisten Datenbanken Einschränkungen haben, aber Postgres nicht. Sie können beliebige Erstellungen von Zahlentabellen, Spaltenänderungen und Indexänderungen in einer Transaktion ausführen, und die Änderungen sind für andere Benutzer nicht sichtbar. Einheit COMMIT ist erfolgreich. So müssen Datenbanken sein! :-)

Wie bei SQL Server können Sie DDL innerhalb einer Transaktion ausführen, aber SQL Server versioniert keine Metadaten, sodass Änderungen für andere sichtbar sind, bevor die Transaktion festgeschrieben wird. Einige DDL-Anweisungen können jedoch zurückgesetzt werden, wenn Sie sich in einer Transaktion befinden, aber für welche funktionieren und welche nicht, müssen Sie einige Tests durchführen.