Je me demande s'il est possible d'exécuter plusieurs instructions DDL dans une transaction. Je suis particulièrement intéressé par SQL Server, même si les réponses avec d'autres bases de données (Oracle, PostgreSQL au moins) pourraient aussi être intéressantes.Est-il possible d'exécuter plusieurs instructions DDL dans une transaction (dans SQL Server)?
J'ai fait quelques "CREATE TABLE" et "CREATE VIEW" pour la table créée dans une transaction et il semble y avoir quelques incohérences et je me demande si les DDL ne devraient pas être faites dans la transaction. ..
Je pourrais probablement déplacer le DDL en dehors de la transaction mais Je voudrais obtenir une référence pour cela. Ce que j'ai trouvé jusqu'ici:
- la page MSDN Isolation Levels in the Database Engine indique clairement que il y a des restrictions sur les opérations DDL peuvent être effectuées dans une transaction explicite qui est en cours d'exécution sous isolement de capture instantanée - mais je ne suis pas en utilisant l'isolement d'instantané et cela devrait entraîner une erreur.
- Ceci pourrait être interprété de sorte que les opérations DDL puissent être exécutées dans une transaction explicite sous différents niveaux d'isolement?
- Oracle® Database Gateway for SQL Server User's Guide#DDL Statements affirme que une seule instruction DDL peut être exécutée dans une transaction donnée - est-ce valable aussi pour SQL Server utilisé directement?
Pour Oracle:
- dans la question SO Unit testing DDL statements that need to be in a transaction il est dit que Oracle n'engage implicitement une déclaration DDL? (même si aucune référence)
Si cela compte quelque chose, je le fais avec Java via le pilote JDBC JDBC.
b.r. Touko
J'utilise JDBC Connection # setAutoCommit (false) et les instructions DML ne sont pas effectuées avec des transactions implicites. Les résultats semblent plus être comme si la table pour créer la vue avec ne serait pas toujours là ou quelque chose. – Touko
Pour EDIT: Cela pourrait être mais je voudrais une référence à la documentation SQL Server ou quelque chose si elle est ou n'est pas autorisé .. – Touko
J'ai utilisé ce livre, voir si vous trouvez en ligne? Microsoft® SQL Server® 2008 Principes de base de T-SQL Imprimer ISBN-10: 0-7356-2601-4 Imprimer ISBN-13: 978-0-7356-2601-0 – Stuart