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).

□ Команда точки сохранения.