1 added
1 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>О СУБД и SQL</a><ul><li><a>Понятие базы данных</a></li>
1
<ul><li><a>О СУБД и SQL</a><ul><li><a>Понятие базы данных</a></li>
2
<li><a>Что такое СУБД</a></li>
2
<li><a>Что такое СУБД</a></li>
3
<li><a>Понятие SQL</a></li>
3
<li><a>Понятие SQL</a></li>
4
<li><a>T-SQL - это…</a></li>
4
<li><a>T-SQL - это…</a></li>
5
</ul></li>
5
</ul></li>
6
<li><a>Транзакции</a><ul><li><a>Свойства</a></li>
6
<li><a>Транзакции</a><ul><li><a>Свойства</a></li>
7
<li><a>Спектр основных команд управления</a></li>
7
<li><a>Спектр основных команд управления</a></li>
8
<li><a>Вычислительная модель</a></li>
8
<li><a>Вычислительная модель</a></li>
9
<li><a>Уровни изоляции</a></li>
9
<li><a>Уровни изоляции</a></li>
10
<li><a>Типы аномалий</a></li>
10
<li><a>Типы аномалий</a></li>
11
</ul></li>
11
</ul></li>
12
<li><a>Наглядные примеры</a><ul><li><a>Простой пример</a></li>
12
<li><a>Наглядные примеры</a><ul><li><a>Простой пример</a></li>
13
<li><a>С обработкой ошибок</a></li>
13
<li><a>С обработкой ошибок</a></li>
14
</ul></li>
14
</ul></li>
15
</ul><p>Транзакции (transactions) - последовательные операции с базами данных. Они представлены некоторой логической единицей для работы с данными. Обрабатываются транзакционными системами, в процессе функционирования которых формируется история транзакций.</p>
15
</ul><p>Транзакции (transactions) - последовательные операции с базами данных. Они представлены некоторой логической единицей для работы с данными. Обрабатываются транзакционными системами, в процессе функционирования которых формируется история транзакций.</p>
16
<p>Соответствующий компонент тесно связан с SQL-запросами. Далее предстоит изучить транзакции на T-SQL. Следует выяснить, зачем они нужны, как используются в базах данных. Эти сведения пригодятся как новичкам, так и более опытным специалистам.</p>
16
<p>Соответствующий компонент тесно связан с SQL-запросами. Далее предстоит изучить транзакции на T-SQL. Следует выяснить, зачем они нужны, как используются в базах данных. Эти сведения пригодятся как новичкам, так и более опытным специалистам.</p>
17
<p>Перед изучение SQL-transaction нужно получше познакомиться с СУБД и SQL. Эта информация поможет понять, для чего применяется T-SQL.</p>
17
<p>Перед изучение SQL-transaction нужно получше познакомиться с СУБД и SQL. Эта информация поможет понять, для чего применяется T-SQL.</p>
18
<h3>Понятие базы данных</h3>
18
<h3>Понятие базы данных</h3>
19
<p>База данных - набор данных, который хранится в системе определенным образом. Делается это для того, чтобы пользователь мог работать с имеющимся набором информации.</p>
19
<p>База данных - набор данных, который хранится в системе определенным образом. Делается это для того, чтобы пользователь мог работать с имеющимся набором информации.</p>
20
<p>В компьютерах часто используются реляционные БД. В них данные представлены в упорядоченном виде. Они обладают связями между собой. Реляционные базы данных - это заполненные таблицы.</p>
20
<p>В компьютерах часто используются реляционные БД. В них данные представлены в упорядоченном виде. Они обладают связями между собой. Реляционные базы данных - это заполненные таблицы.</p>
21
<p>Основой реляционных моделей служит теория множеств. Она подразумевает объединение различные объектов в единое целое. В БД таковыми непосредственно служат таблицы.</p>
21
<p>Основой реляционных моделей служит теория множеств. Она подразумевает объединение различные объектов в единое целое. В БД таковыми непосредственно служат таблицы.</p>
22
<h3>Что такое СУБД</h3>
22
<h3>Что такое СУБД</h3>
23
<p>В информатике есть такое понятие как СУБД. Это - система управления базами данных. представляет собой специальную программу, в которой выполняются различными действия с электронными таблицами БД.</p>
23
<p>В информатике есть такое понятие как СУБД. Это - система управления базами данных. представляет собой специальную программу, в которой выполняются различными действия с электронными таблицами БД.</p>
24
<p>Наиболее популярными СУБД выступают:</p>
24
<p>Наиболее популярными СУБД выступают:</p>
25
<ul><li>Microsoft SQL Server;</li>
25
<ul><li>Microsoft SQL Server;</li>
26
<li>PostgreSQL;</li>
26
<li>PostgreSQL;</li>
27
<li>MySQL;</li>
27
<li>MySQL;</li>
28
<li>Oracle Database.</li>
28
<li>Oracle Database.</li>
29
</ul><p>Каждая СУБД может выполнять определенный спектр операций. Функциональность соответствующих приложений несколько отличается, но главное их предназначение - управление базами данных.</p>
29
</ul><p>Каждая СУБД может выполнять определенный спектр операций. Функциональность соответствующих приложений несколько отличается, но главное их предназначение - управление базами данных.</p>
30
<h3>Понятие SQL</h3>
30
<h3>Понятие SQL</h3>
31
<p>Данные в реляционных БД упорядочены и представлены в качестве таблиц. Хранятся и управляются они через специальные приложения - СУБД. Обращение к информации, а также манипулирование ими осуществляется за счет формирования специальных запросов. С их помощью можно удалять, добавлять, считывать и изменять данные в имеющейся базе.</p>
31
<p>Данные в реляционных БД упорядочены и представлены в качестве таблиц. Хранятся и управляются они через специальные приложения - СУБД. Обращение к информации, а также манипулирование ими осуществляется за счет формирования специальных запросов. С их помощью можно удалять, добавлять, считывать и изменять данные в имеющейся базе.</p>
32
<p>SQL - это язык структурированных запросов. С его помощью формируются специальные запросы к базе данных. это необходимо для организации управления таблицами и сведениями, содержащихся в них. Некий стандарт в информатике, реализованные в реляционных БД. Имеет различные диалекты. Один из них - это T-SQL.</p>
32
<p>SQL - это язык структурированных запросов. С его помощью формируются специальные запросы к базе данных. это необходимо для организации управления таблицами и сведениями, содержащихся в них. Некий стандарт в информатике, реализованные в реляционных БД. Имеет различные диалекты. Один из них - это T-SQL.</p>
33
<h3>T-SQL - это…</h3>
33
<h3>T-SQL - это…</h3>
34
<p>T-SQL - расширение SQL, реализованное в Microsoft Server. Диалект, который в информатике используется для решения разных задач, не связанных с реляционными данными. На нем можно программировать при помощи:</p>
34
<p>T-SQL - расширение SQL, реализованное в Microsoft Server. Диалект, который в информатике используется для решения разных задач, не связанных с реляционными данными. На нем можно программировать при помощи:</p>
35
<ul><li>циклов;</li>
35
<ul><li>циклов;</li>
36
<li>условных конструкций;</li>
36
<li>условных конструкций;</li>
37
<li>переменных и иных возможностей.</li>
37
<li>переменных и иных возможностей.</li>
38
</ul><p>T-SQL дает возможность реализации сложных алгоритмов бизнес-логики в виде хранимых процедур и функций. Все это приводит к созданию так называемых "программ" внутри БД.</p>
38
</ul><p>T-SQL дает возможность реализации сложных алгоритмов бизнес-логики в виде хранимых процедур и функций. Все это приводит к созданию так называемых "программ" внутри БД.</p>
39
<p>T-SQL - язык, который упрощает формирование SQL-запросов за счет огромного количества встроенных системных функций. Он дает возможность администрировать SQL Server, а также получать системную информацию, используя представления, процедуры и функции.</p>
39
<p>T-SQL - язык, который упрощает формирование SQL-запросов за счет огромного количества встроенных системных функций. Он дает возможность администрировать SQL Server, а также получать системную информацию, используя представления, процедуры и функции.</p>
40
<h2>Транзакции</h2>
40
<h2>Транзакции</h2>
41
<p>Для полноценного использования T-SQL при организации управления транзакциями в SQL, нужно понять, что вообще они собой представляют.</p>
41
<p>Для полноценного использования T-SQL при организации управления транзакциями в SQL, нужно понять, что вообще они собой представляют.</p>
42
<p>Транзакция - это команда или их блок (инструкции), которые успешно завершаются как единое целое. В базе данных все внесенные изменения будут зафиксированы на постоянной основе, или отменены.</p>
42
<p>Транзакция - это команда или их блок (инструкции), которые успешно завершаются как единое целое. В базе данных все внесенные изменения будут зафиксированы на постоянной основе, или отменены.</p>
43
<p>В transaction при выполнении хотя бы одной команды или инструкции с ошибкой, все внесенные в БД изменения будут отменены. Это касается даже ситуаций, когда все предыдущие алгоритмы завершились успешно.</p>
43
<p>В transaction при выполнении хотя бы одной команды или инструкции с ошибкой, все внесенные в БД изменения будут отменены. Это касается даже ситуаций, когда все предыдущие алгоритмы завершились успешно.</p>
44
<p>Транзакции данных полезны при реализации бизнес-логики в MS Server, предполагающей пошаговые операции. Такие, в которых каждый шаг имеет логическую связь с другими этапами.</p>
44
<p>Транзакции данных полезны при реализации бизнес-логики в MS Server, предполагающей пошаговые операции. Такие, в которых каждый шаг имеет логическую связь с другими этапами.</p>
45
<p>Каждая отдельно взятая инструкция диалекта языка запросов - это транзакция. Такие конструкции называются неявными транзакциями. При помощи специальных команд можно задать соответствующие элементы явным образом.</p>
45
<p>Каждая отдельно взятая инструкция диалекта языка запросов - это транзакция. Такие конструкции называются неявными транзакциями. При помощи специальных команд можно задать соответствующие элементы явным образом.</p>
46
<p>Чтобы лучше понять концепцию transaction, необходимо рассмотреть один стандартный пример - имеется хранимая процедура в виде перевода средств между счетами. Это приводит к формированию минимум двух операций: снятие денег и их зачисление. Пример - две инструкции UPDATE.</p>
46
<p>Чтобы лучше понять концепцию transaction, необходимо рассмотреть один стандартный пример - имеется хранимая процедура в виде перевода средств между счетами. Это приводит к формированию минимум двух операций: снятие денег и их зачисление. Пример - две инструкции UPDATE.</p>
47
<p>В каждой из соответствующих операций может возникнуть ошибка - инструкция не будет выполнена. Если бы первый алгоритм снимал средства (успешное выполнение), а второй, по зачислению средств, выполнялся с ошибкой, без транзакции данных деньги просто потерялись бы. Они в этом случае будут списаны, но "зависнут", неизвестно где.</p>
47
<p>В каждой из соответствующих операций может возникнуть ошибка - инструкция не будет выполнена. Если бы первый алгоритм снимал средства (успешное выполнение), а второй, по зачислению средств, выполнялся с ошибкой, без транзакции данных деньги просто потерялись бы. Они в этом случае будут списаны, но "зависнут", неизвестно где.</p>
48
-
<p>SQL использует инструкции, которые логически что-то объединяет. Приведенный пример - это все операции, связанные с переводом денег. Они будут прописаны внутри транзакции данных. В соответствующей ситуации, если возникнет ошибка, все изменения будут отменены: деньги вернутся обратно на счет плательщика.</p>
48
+
<p>SQL использует инструкции, которые логически что-то о��ъединяет. Приведенный пример - это все операции, связанные с переводом денег. Они будут прописаны внутри транзакции данных. В соответствующей ситуации, если возникнет ошибка, все изменения будут отменены: деньги вернутся обратно на счет плательщика.</p>
49
<p>Транзакции можно сочетать с обработкой и перехватом ошибок TRY…CATCH. В этом случае происходит поиск ошибок в блоке инструкций. При их обнаружении в CATCH-блоке транзакция откатывается. Все изменения, даже успешно выполненные до "сбоя", отменяются.</p>
49
<p>Транзакции можно сочетать с обработкой и перехватом ошибок TRY…CATCH. В этом случае происходит поиск ошибок в блоке инструкций. При их обнаружении в CATCH-блоке транзакция откатывается. Все изменения, даже успешно выполненные до "сбоя", отменяются.</p>
50
<p>Транзакции баз данных нужны для обеспечения безопасности. Это своеобразные механизмы обеспечения целостности информации.</p>
50
<p>Транзакции баз данных нужны для обеспечения безопасности. Это своеобразные механизмы обеспечения целостности информации.</p>
51
<h3>Свойства</h3>
51
<h3>Свойства</h3>
52
<p>У транзакций есть некоторые свойства:</p>
52
<p>У транзакций есть некоторые свойства:</p>
53
<ol><li>Атомарность. Все команды в пределах транзакции или полностью выполняются, а также фиксируются, или не обрабатываются вовсе. Во втором случае после обработки "запроса" ничего не сохраняется.</li>
53
<ol><li>Атомарность. Все команды в пределах транзакции или полностью выполняются, а также фиксируются, или не обрабатываются вовсе. Во втором случае после обработки "запроса" ничего не сохраняется.</li>
54
<li>Согласованность. Данные, при успешном выполнении транзакции баз данных, должны соблюдать установленные правила по различным ограничениям, первичным и внешним ключам.</li>
54
<li>Согласованность. Данные, при успешном выполнении транзакции баз данных, должны соблюдать установленные правила по различным ограничениям, первичным и внешним ключам.</li>
55
<li>Изоляция. Он представлен механизмом предоставления доступа к данным. Транзакция изолирует информацию, с которой она работает. Это необходимо для того чтобы другие "операции" получали исключительно согласованные сведения.</li>
55
<li>Изоляция. Он представлен механизмом предоставления доступа к данным. Транзакция изолирует информацию, с которой она работает. Это необходимо для того чтобы другие "операции" получали исключительно согласованные сведения.</li>
56
<li>Надежность. Все изменения, реализованные в ходе выполнения транзакции фиксируются в специальном журнале. Они считаются надежными, если обработка прошла успешно. При сбое MS Server проверяет информацию, записанную в БД, с журналом транзакций. При обнаружении успешно завершенные "блоки", которые не закончили процесс записи всех необходимых изменений в базу данных, они будут выполнены повторно. Все, что не прошло успешное завершение, будет отменено. Такие транзакции являются неподтвержденными.</li>
56
<li>Надежность. Все изменения, реализованные в ходе выполнения транзакции фиксируются в специальном журнале. Они считаются надежными, если обработка прошла успешно. При сбое MS Server проверяет информацию, записанную в БД, с журналом транзакций. При обнаружении успешно завершенные "блоки", которые не закончили процесс записи всех необходимых изменений в базу данных, они будут выполнены повторно. Все, что не прошло успешное завершение, будет отменено. Такие транзакции являются неподтвержденными.</li>
57
</ol><p>Запомнить эти свойства должен каждый администратор. Теперь, когда понятно, для чего нужны транзакции, можно приступить к изучению команд управления в T-SQL. А еще - к рассмотрению наглядных примеров их использования на серверах.</p>
57
</ol><p>Запомнить эти свойства должен каждый администратор. Теперь, когда понятно, для чего нужны транзакции, можно приступить к изучению команд управления в T-SQL. А еще - к рассмотрению наглядных примеров их использования на серверах.</p>
58
<h3>Спектр основных команд управления</h3>
58
<h3>Спектр основных команд управления</h3>
59
<p>Теория транзакции данных поддерживает множество команд управления. К основным относят следующие инструкции:</p>
59
<p>Теория транзакции данных поддерживает множество команд управления. К основным относят следующие инструкции:</p>
60
<ol><li>Begin transaction или Begin Tran. Определяет начало транзакции. В виде параметра здесь можно передать непосредственное название транзакции. Данный прием особо полезен при вложенности "блоков".</li>
60
<ol><li>Begin transaction или Begin Tran. Определяет начало транзакции. В виде параметра здесь можно передать непосредственное название транзакции. Данный прием особо полезен при вложенности "блоков".</li>
61
<li>Commit. Указывает на факт успешного окончания одной транзакции в базе данных. Команда, которая сообщает о том, что все изменения, выполненные ранее, должны быть сохранены на постоянной основе.</li>
61
<li>Commit. Указывает на факт успешного окончания одной транзакции в базе данных. Команда, которая сообщает о том, что все изменения, выполненные ранее, должны быть сохранены на постоянной основе.</li>
62
<li>RollBack - завершение всех изменений. Отменяет то, что было выполнено во время "операции". Команда завершает абсолютно все изменения. Пример - при возникновении ошибки в процессе обработки транзакции в базе данных. Это своеобразный откат.</li>
62
<li>RollBack - завершение всех изменений. Отменяет то, что было выполнено во время "операции". Команда завершает абсолютно все изменения. Пример - при возникновении ошибки в процессе обработки транзакции в базе данных. Это своеобразный откат.</li>
63
<li>Save. Отвечает за создание промежуточной точки сохранения. Она формируется внутри транзакции. Сохраняет "точку отката", до которой можно добраться по мере необходимости.</li>
63
<li>Save. Отвечает за создание промежуточной точки сохранения. Она формируется внутри транзакции. Сохраняет "точку отката", до которой можно добраться по мере необходимости.</li>
64
</ol><p>Теперь понятно, какие типы команд используются в транзакциях баз данных SQL. Теория соответствующий "операций" поддерживает специальную модель. Она называется вычислительной. Создана для того чтобы избегать проблем, связанных с обработкой транзакций.</p>
64
</ol><p>Теперь понятно, какие типы команд используются в транзакциях баз данных SQL. Теория соответствующий "операций" поддерживает специальную модель. Она называется вычислительной. Создана для того чтобы избегать проблем, связанных с обработкой транзакций.</p>
65
<h3>Вычислительная модель</h3>
65
<h3>Вычислительная модель</h3>
66
<p>Стандартная вычислительная модель транзакций SQL Server включает в себя:</p>
66
<p>Стандартная вычислительная модель транзакций SQL Server включает в себя:</p>
67
<ol><li>Простейшие операции, которые определены над объектами данных.</li>
67
<ol><li>Простейшие операции, которые определены над объектами данных.</li>
68
<li>Сами транзакции: последовательности или частично упорядоченные множества элементарных команд.</li>
68
<li>Сами транзакции: последовательности или частично упорядоченные множества элементарных команд.</li>
69
<li>Расписания (истории), описывающие конкурентное выполнение транзакций.</li>
69
<li>Расписания (истории), описывающие конкурентное выполнение транзакций.</li>
70
<li>Критерии, помогающие определять корректность расписаний.</li>
70
<li>Критерии, помогающие определять корректность расписаний.</li>
71
<li>Алгоритмы управления транзакциями данных. Они отвечают за получение корректных историй.</li>
71
<li>Алгоритмы управления транзакциями данных. Они отвечают за получение корректных историй.</li>
72
</ol><p>Все это поможет избежать таких явлений как: фантомное чтение, неповторяющееся и грязное чтение, потерянное обновление.</p>
72
</ol><p>Все это поможет избежать таких явлений как: фантомное чтение, неповторяющееся и грязное чтение, потерянное обновление.</p>
73
<h3>Уровни изоляции</h3>
73
<h3>Уровни изоляции</h3>
74
<p>СУБД поддерживают так называемый уровень изоляции транзакции. Он может быть совершенно разным:</p>
74
<p>СУБД поддерживают так называемый уровень изоляции транзакции. Он может быть совершенно разным:</p>
75
<ol><li>0 - чтение незафиксированных данных (Read Uncommitted). Здесь нет никаких гарантий того, что данные, измененные другими транзакциями, не будут корректироваться снова под откатом. Результат такого чтения - это частые ошибки.</li>
75
<ol><li>0 - чтение незафиксированных данных (Read Uncommitted). Здесь нет никаких гарантий того, что данные, измененные другими транзакциями, не будут корректироваться снова под откатом. Результат такого чтения - это частые ошибки.</li>
76
<li>1 - чтение зафиксированные данных (Read Committed). Считывание всех изменений своей транзакции, а также зафиксированных корректировок параллельных "блоков". Потерянное изменение и грязное чтение не допускается.</li>
76
<li>1 - чтение зафиксированные данных (Read Committed). Считывание всех изменений своей транзакции, а также зафиксированных корректировок параллельных "блоков". Потерянное изменение и грязное чтение не допускается.</li>
77
<li>2 - повторяемое чтение. Изменения, внесенные параллельными транзакциями, после начала своей, окажутся недоступными. Происходит чтение всех изменений своей "операции". В данном случае возможны только фантомы.</li>
77
<li>2 - повторяемое чтение. Изменения, внесенные параллельными транзакциями, после начала своей, окажутся недоступными. Происходит чтение всех изменений своей "операции". В данном случае возможны только фантомы.</li>
78
<li>3 - сериализуемый. Параллельное выполнение сериализуемой транзакцией с другими должен быть логически эквивалентен результату их последовательного выполнения. Синхронизационные проблемы при таком уровне изоляции отсутствуют.</li>
78
<li>3 - сериализуемый. Параллельное выполнение сериализуемой транзакцией с другими должен быть логически эквивалентен результату их последовательного выполнения. Синхронизационные проблемы при таком уровне изоляции отсутствуют.</li>
79
</ol><p>Чем выше уровень изоляции, тем больше ресурсов необходимо для его обеспечения. По умолчанию в большинстве СУБД используется уровень 1. 0 применяется для отслеживания длительных "операций" или чтения характеристик, которые редко меняются в MS Server.</p>
79
</ol><p>Чем выше уровень изоляции, тем больше ресурсов необходимо для его обеспечения. По умолчанию в большинстве СУБД используется уровень 1. 0 применяется для отслеживания длительных "операций" или чтения характеристик, которые редко меняются в MS Server.</p>
80
<h3>Типы аномалий</h3>
80
<h3>Типы аномалий</h3>
81
<p>Завершение транзакций при их параллельной работе может быть завершено с ошибками. Они будут связаны с логикой работы операций. Вот наиболее распространенные ошибки завершения транзакции:</p>
81
<p>Завершение транзакций при их параллельной работе может быть завершено с ошибками. Они будут связаны с логикой работы операций. Вот наиболее распространенные ошибки завершения транзакции:</p>
82
<ol><li>Потерянное обновление. При обновлении поля двумя транзакциями одно из изменений теряется.</li>
82
<ol><li>Потерянное обновление. При обновлении поля двумя транзакциями одно из изменений теряется.</li>
83
<li>Грязное чтение. Так называется считывание данных, полученных в результате транзакции, которая после этого откатывается.</li>
83
<li>Грязное чтение. Так называется считывание данных, полученных в результате транзакции, которая после этого откатывается.</li>
84
<li>Неповторяющееся чтение. Возникает, когда в течение одной транзакции при повторном чтении информация оказывается перезаписанной.</li>
84
<li>Неповторяющееся чтение. Возникает, когда в течение одной транзакции при повторном чтении информация оказывается перезаписанной.</li>
85
<li>Фантомы или фантомное чтение. Отличается от предыдущей аномалии тем, что при повторном чтении одна и та же выборка будет выдавать разные множества строк.</li>
85
<li>Фантомы или фантомное чтение. Отличается от предыдущей аномалии тем, что при повторном чтении одна и та же выборка будет выдавать разные множества строк.</li>
86
</ol><p>Теперь, когда изучены типы аномалий, свойства и команды необходимо рассмотреть наглядные примеры.</p>
86
</ol><p>Теперь, когда изучены типы аномалий, свойства и команды необходимо рассмотреть наглядные примеры.</p>
87
<h2>Наглядные примеры</h2>
87
<h2>Наглядные примеры</h2>
88
<p>Для примеров, приведенных далее, сначала открываем исходные данные. Для этого необходимо создать и обработать такую операцию:</p>
88
<p>Для примеров, приведенных далее, сначала открываем исходные данные. Для этого необходимо создать и обработать такую операцию:</p>
89
<p>Выше также приведен пример исходных данных. Создание таблиц в БД происходит при помощи CREATE TABLE. SELECT здесь отвечает за выборку.</p>
89
<p>Выше также приведен пример исходных данных. Создание таблиц в БД происходит при помощи CREATE TABLE. SELECT здесь отвечает за выборку.</p>
90
<h3>Простой пример</h3>
90
<h3>Простой пример</h3>
91
<p>В заданном примере существуют всего две инструкции. Они изменяют данные и взаимосвязаны друг с другом. Это значит, что соответствующие команды обязательно выполняются совместно или не работают, но тоже вместе.</p>
91
<p>В заданном примере существуют всего две инструкции. Они изменяют данные и взаимосвязаны друг с другом. Это значит, что соответствующие команды обязательно выполняются совместно или не работают, но тоже вместе.</p>
92
<p>Обрабатываемые операции объединяются в одну транзакцию. Сначала она создаваемая "операция" открывается через Begin, после необходимо написать все соединяемые инструкции.</p>
92
<p>Обрабатываемые операции объединяются в одну транзакцию. Сначала она создаваемая "операция" открывается через Begin, после необходимо написать все соединяемые инструкции.</p>
93
<p>Далее потребуется сохраниться. Сделать это можно через команду COMMIT. Она сохраняет все внесенные изменения.</p>
93
<p>Далее потребуется сохраниться. Сделать это можно через команду COMMIT. Она сохраняет все внесенные изменения.</p>
94
<p>Ошибок в ходе обработки команд не будет. Инструкции выполнятся успешно. Результатом станет проведенная транзакция. Все изменения система сохраняет на постоянной основе через COMMIT.</p>
94
<p>Ошибок в ходе обработки команд не будет. Инструкции выполнятся успешно. Результатом станет проведенная транзакция. Все изменения система сохраняет на постоянной основе через COMMIT.</p>
95
<p>Если в любой из инструкций возникает ошибка, транзакция прекращается. Все изменения будут отменены. Пример - если во второй команде пользователь попытается записать в Price текстовое значение.</p>
95
<p>Если в любой из инструкций возникает ошибка, транзакция прекращается. Все изменения будут отменены. Пример - если во второй команде пользователь попытается записать в Price текстовое значение.</p>
96
<h3>С обработкой ошибок</h3>
96
<h3>С обработкой ошибок</h3>
97
<p>T-SQL поддерживает механизм перехвата ошибок. Он выражен конструкцией Try…Catch. Соответствующая конструкция используется для отслеживания ошибок внутри приведенных примеров транзакций SQL. При их возникновении система будет предпринимать те или иные действия.</p>
97
<p>T-SQL поддерживает механизм перехвата ошибок. Он выражен конструкцией Try…Catch. Соответствующая конструкция используется для отслеживания ошибок внутри приведенных примеров транзакций SQL. При их возникновении система будет предпринимать те или иные действия.</p>
98
<p>Сначала необходимо открыть блок для обработки ошибок, а затем транзакцию. После в коде указываются инструкции. Пример - UPDATE. Далее блок TRY нужно закрыть и открыть CATCH. В нем при ошибке изменения откатываются через ROLLBACK. Инструкция также завершается принудительно через RETURN.</p>
98
<p>Сначала необходимо открыть блок для обработки ошибок, а затем транзакцию. После в коде указываются инструкции. Пример - UPDATE. Далее блок TRY нужно закрыть и открыть CATCH. В нем при ошибке изменения откатываются через ROLLBACK. Инструкция также завершается принудительно через RETURN.</p>
99
<p>Если ошибки отсутствуют, блок CATCH не открывается. Происходит выполнение COMMIT. Команда сохраняет все внесенные изменения.</p>
99
<p>Если ошибки отсутствуют, блок CATCH не открывается. Происходит выполнение COMMIT. Команда сохраняет все внесенные изменения.</p>
100
<p>Лучше изучить свойства транзакций, их ошибки, а также разобраться с тем, что использовать - commit или rollback, помогут дистанционные онлайн-курсы. На них с нуля пользователя обучат принципам работы с БД и SQL, а также его диалектам.</p>
100
<p>Лучше изучить свойства транзакций, их ошибки, а также разобраться с тем, что использовать - commit или rollback, помогут дистанционные онлайн-курсы. На них с нуля пользователя обучат принципам работы с БД и SQL, а также его диалектам.</p>
101
<p><em>Прокачать <a>навыки работы с базами данных</a> можно на курсах Otus.</em></p>
101
<p><em>Прокачать <a>навыки работы с базами данных</a> можно на курсах Otus.</em></p>
102
102