Me pregunto si es posible ejecutar múltiples instrucciones DDL dentro de una transacción. Estoy especialmente interesado en SQL Server, aunque las respuestas con otras bases de datos (Oracle, PostgreSQL al menos) también podrían ser interesantes.¿Es posible ejecutar múltiples instrucciones DDL dentro de una transacción (dentro de SQL Server)?
He estado haciendo algunos "CREATE TABLE" y "CREATE VIEW" para la tabla creada dentro de una transacción y parece haber algunas inconsistencias y me pregunto si los DDL no deberían hacerse dentro de la transacción. ..
Probablemente podría mover el DDL fuera de la transacción pero Me gustaría obtener alguna referencia para esto. Lo que he encontrado hasta aquí:
- MSDN página Isolation Levels in the Database Engine dice claramente que hay restricciones en lo que las operaciones DDL se pueden realizar en una transacción explícita que se ejecuta en el aislamiento de instantánea - pero no estoy usando el aislamiento de instantánea y esto debería resultar como un error.
- Esto podría interpretarse de modo que las operaciones DDL se puedan llevar a cabo en una transacción explícita bajo diferentes niveles de aislamiento?
- Oracle® Database Gateway for SQL Server User's Guide#DDL Statementsafirma que sólo una instrucción DDL puede ejecutar en una transacción dada - es esto vale también para SQL Server utilizada directamente?
Para Oracle:
- Dentro Así que la pregunta Unit testing DDL statements that need to be in a transaction se dice que Oracle hace implícita comprometerse para una sentencia DDL? (aunque no hay referencias)
Si algo importa, estoy haciendo esto con Java a través del controlador JTDS JDBC.
b.r. Touko
Estoy usando la conexión JDBC# setAutoCommit (falso) y las declaraciones DML no se realizan con las transacciones implícitas. Los resultados parecen ser más como que la tabla para crear la vista no siempre estaría allí o algo así. – Touko
Para EDITAR: Eso podría ser, pero me gustaría tener alguna referencia a la documentación de SQL Server o algo así, ya sea que esté o no permitido. – Touko
Utilicé este libro, mira si lo encuentras en línea? Microsoft® SQL Server® 2008 Fundamentos de T-SQL Imprimir ISBN-10: 0-7356-2601-4 Imprimir ISBN-13: 978-0-7356-2601-0 – Stuart