Sé que la mayoría de las bases de datos tienen restricciones, pero Postgres no. Puede ejecutar cualquier creación de tabla de números, cambios de columna y cambios de índice en una transacción, y los cambios no son visibles para otros usuarios. La unidad COMMIT tiene éxito. ¡Así deberían ser las bases de datos! :-)
En cuanto a SQL Server, puede ejecutar DDL dentro de una transacción, pero SQL Server no versiona los metadatos, por lo que los cambios serían visibles para otros antes de que se confirme la transacción. Pero algunas declaraciones DDL se pueden revertir si está en una transacción, pero para cuáles funcionan y cuáles no, necesitará ejecutar algunas pruebas.