Transaction_name | @tran_name_variable
BEGIN TRANSACTION
Включение транзакций в программный код
Программирование транзакций
При работе на стороне сервера может оказаться недостаточным использование исключительно автоматических транзакций, т. к. они действуют только в рамках одной команды. И вам придется управлять транзакциями программным путем. Довольно часто в транзакцию включают весь код хранимой процедуры.
Основу использования транзакций в программном коде на языке Transact-SQL составляют четыре команды: begin transaction, commit transaction (commit work), rollback transaction (rollback work), save transaction, к более подробному объяснению которых я сейчас и приступлю.
О Команда начала явной транзакции.
[WITH MARK [ 'description' ]]]
где:
• transaction_name — имя транзакции. Длина имени не может превышать 32 символа. Само же имя должно удовлетворять требованиям,
предъявляемым к именам объектов в Transact-SQL. Именованные
транзакции используются при наличии вложения транзакций;
• @tran_name_variabie — имя транзакции, указанное с помощью переменной (ИСПОЛЬЗУЮТСЯ ТИПЫ CHAR, VARCHAR, NCHAR, NVARCHAR);
• with mark ['description'] — конструкция, позволяющая пометить-
транзакцию, with mark — метка, которая указывается в журнале транзакций и в дальнейшем может быть использована при восстановлении базы данных (см. разд. 8.1.5). description — описание, с помощью которого метка может быть идентифицирована при восстановлении резервной копии. Помечается только транзакция, изменяющая данные.
□ Команда начала распределенной транзакции.
BEGIN TRANSACTION]
[transaction_name | @tran_name_variable
Здесь отсутствует секция with mark, т. е. распределенные транзакции нельзя маркировать.
О Команда завершения явной транзакции.
COMMIT [ TRANSACTION ] [ transaction_name | @tran_name_variable ] ]
Сюда включены следующие разделы:
• transactiorwiame — имя завершаемой транзакции. Сервер игнорирует
это имя, так что оно служит скорее для того, чтобы сделать понятным
программный код;
• @tran_name_variable — переменная, определяющая имя завершаемой
транзакции (используются типы char, varchar, nchar, nvarchar).
□ Команда точки сохранения.