Transações e lotes são dois conceitos independentes. Ambos podem ser usados em uma configuração de um para muitos.
Os blocos de transação são uma única "unidade de trabalho", um conceito que o sql comprometido deve funcionar totalmente ou não funcionar. Por exemplo, se você atualizar duas tabelas vinculadas uma à outra; ambos devem ter êxito para que a alteração de dados seja confirmada. [ https://msdn.microsoft.com/en-us/library/ms174377.aspx]
Lote é um conceito da Microsoft. Com as ferramentas criadas pela Microsoft, como sqlcmd e osql, o lote simplesmente garante um único plano de execução. Por exemplo, se você criar uma variável e usá-la fora do lote, a ferramenta gerará um erro. [ https://msdn.microsoft.com/en-us/library/ms188037.aspx]
Portanto, você pode ter vários lotes que atualizam várias tabelas dentro de um bloco de transação. Na medida em que eles não violem planos de execução de lote individuais, isso é.
Além disso, dentro de um lote, você pode ter vários blocos de transações, garantindo a integridade dos dados entre entidades do banco de dados, como tabelas.
Conexão é simplesmente o handshake de comunicação que aprova a execução de consultas no servidor.
Instruções são linhas individuais que formam uma consulta. GO (separador de lote T-Sql) e BEGIN TRANSACTION (ANSI SQL para iniciar um novo bloco de transações) são ambas instruções.