SQL Server: операторы по сравнению с пакетами по сравнению с транзакциями по сравнению с соединениями

Мое первое впечатление при чтении вопроса - то, что человек IT получил SSH и перепутанный SSL (он должен быть подписан нами), и также не понимает, как SSL, подписывающийся действительно, работает.

Так или иначе нет никакого способа, которым ключ SSH может быть подписан (что я знаю о).

10
задан 30 March 2010 в 10:30
3 ответа

В значительной степени.

Пакет просто, что, пакет команд, которые должны быть выполнены. Транзакция является рядом команд, которые, как гарантируют, успешно выполнятся или перестанут работать полностью (т.е. это не завершит половину команд и затем перестанет работать на остальных, если Вы перестанете работать, они все перестали работать).

Насколько я - осведомленный SQL Server, использует организацию пула подключений, таким образом, я не полагался бы на одно соединение на клиентскую идею.

4
ответ дан 2 December 2019 в 22:11
  • 1
    Так what' s кардинальность между пакетом и транзакцией? Действительно ли возможно иметь несколько пакетов на транзакцию? Как насчет наоборот? –   30 March 2010 в 12:19
  • 2
    Насколько я знаю, что возможно иметь несколько транзакций на пакет, но не возможно иметь несколько пакетов на транзакцию. –  Cromulent 30 March 2010 в 13:32

Пакеты и транзакции существуют на том же уровне. Пакет является набором в других отношениях несвязанных команд SQL. Транзакция является набором команд SQL, которые работают (что касается всех других пользователей той базы данных) как один оператор.

1
ответ дан 2 December 2019 в 22:11

Сделки и партии - два независимых понятия. Оба могут быть использованы в одной или нескольких конфигурациях.

Блоки транзакций - это единая "единица работы", концепция, которая должна либо полностью работать, либо не работать вообще. Например, если вы обновляете две связанные друг с другом таблицы; обе должны быть успешными, чтобы изменение данных было зафиксировано. [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 для запуска нового блока транзакций)

.
5
ответ дан 2 December 2019 в 22:11

Теги

Похожие вопросы