Las transacciones y los lotes son dos conceptos independientes. Ambos se pueden usar en una configuración de uno a muchos.
Los bloques de transacciones son una sola "unidad de trabajo", un concepto que SQL comprometido debe funcionar completamente o no funcionar en absoluto. Por ejemplo, si actualiza dos tablas vinculadas entre sí; ambos deben tener éxito para que se confirme el cambio de datos. [ https://msdn.microsoft.com/en-us/library/ms174377.aspx]
Batch es un concepto de Microsoft. Con las herramientas creadas por Microsoft, como sqlcmd y osql, el lote simplemente garantiza un único plan de ejecución. Por ejemplo, si crea una variable y la usa fuera del lote, la herramienta arrojará un error. [ https://msdn.microsoft.com/en-us/library/ms188037.aspx]
Por lo tanto, puede tener varios lotes que actualizan varias tablas dentro de un bloque de transacciones. En la medida en que no violen los planes de ejecución de lotes individuales que es.
Además, dentro de un lote, puede tener múltiples bloques de transacciones, asegurando la integridad de los datos entre las entidades de la base de datos, como las tablas.
La conexión es simplemente el apretón de manos de comunicación que aprueba la ejecución de consultas en el servidor.
Las declaraciones son líneas individuales que forman una consulta. GO (separador de lotes T-Sql) y BEGIN TRANSACTION (ANSI SQL para iniciar un nuevo bloque de transacciones) son ambas declaraciones.