HTML Diff
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