MSSQL ddl implementation should perhaps issue a final GO at the end of the batch?
Currently if invoked with
--sql alembic will generate sql appearing as
BEGIN TRANSACTION; <some ddl> GO ... <some ddl> GO UPDATE alembic_version SET version_num='<new version>'; GO COMMIT;
Depending on the tool that is used to apply this file, it is possible that the final COMMIT will not actually be issued as the tool may not issue an implicit GO at the end-of-file.
(The offending tool I've observed is sqsh).