Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Est-il possible d'exécuter plusieurs instructions DDL dans une transaction (dans SQL Server) ?

Je sais que la plupart des bases de données ont des restrictions, mais pas Postgres. Vous pouvez exécuter n'importe quelle création de table numérique, modification de colonne et modification d'index dans une transaction, et les modifications ne sont pas visibles pour les autres utilisateurs une fois que COMMIT réussit. C'est ainsi que les bases de données devraient être ! :-)

Comme pour SQL Server, vous pouvez exécuter DDL à l'intérieur d'une transaction, mais SQL Server ne versionne pas les métadonnées, et les modifications seraient donc visibles pour les autres avant la validation de la transaction. Mais certaines instructions DDL peuvent être annulées si vous êtes dans une transaction, mais pour lesquelles fonctionnent et lesquelles ne fonctionnent pas, vous devrez exécuter des tests.