Транзакции и Пакеты - это две независимые концепции. Оба могут быть использованы в конфигурации один ко многим.
Блоки транзакций - это единая «единица работы», концепция, согласно которой совершенный sql должен либо полностью работать, либо не работать вообще. Например, если вы обновите две таблицы, связанные друг с другом; оба должны быть успешными, чтобы изменение данных было зафиксировано. [ https://msdn.microsoft.com/en-us/library/ms174377.aspx]
Пакет - это концепция Microsoft. С инструментами, созданными Microsoft, такими как sqlcmd и osql, пакет просто обеспечивает единый план выполнения. Например, если вы создаете переменную и используете ее вне пакета, инструмент выдаст ошибку. [ https://msdn.microsoft.com/en-us/library/ms188037.aspx]
Таким образом, вы можете иметь несколько пакетов, которые обновляют несколько таблиц внутри одного блока транзакции. Насколько они не нарушают отдельные планы выполнения партии, то есть.
Кроме того, в пакете вы можете иметь несколько блоков транзакций, обеспечивая целостность данных между объектами базы данных, такими как таблицы.
Соединение - это просто рукопожатие связи, которое одобряет запуск запросов на сервере.
Заявления - это отдельные строки, формирующие запрос. GO (разделитель пакетов T-Sql) и BEGIN TRANSACTION (ANSI SQL для запуска нового блока транзакции) являются операторами.