Eu sei que a maioria dos bancos de dados tem restrições, mas o Postgres não. Você pode executar qualquer criação de tabela numérica, alterações de coluna e alterações de índice em uma transação, e as alterações não são visíveis para outros usuários que a unidade COMMIT é bem-sucedida. É assim que os bancos de dados devem ser! :-)
Quanto ao SQL Server, você pode executar o DDL dentro de uma transação, mas o SQL Server não faz a versão dos metadados e, portanto, as alterações seriam visíveis para outras pessoas antes da confirmação da transação. Mas algumas instruções DDL podem ser revertidas se você estiver em uma transação, mas para quais funcionam e quais não, você precisará executar alguns testes.