Изменения документа Шаблон транзакции

Редактировал(а) Alexandr Fokin 2023/12/16 14:12

<
От версии < 5.1 >
отредактировано Alexandr Fokin
на 2020/01/24 14:33
К версии < 20.15 >
отредактировано Alexandr Fokin
на 2023/12/16 14:01
>
Изменить комментарий: Update document after refactoring.

Комментарий

Подробности

Свойства страницы
Родительский документ
... ... @@ -1,1 +1,1 @@
1 -Разработка.Базы данных.SQL запросы.WebHome
1 +Разработка.Базы данных 2.SQL.MSSQL.SQL запросы.WebHome
Теги
... ... @@ -1,0 +1,1 @@
1 +sql|SqlQuery
Содержимое
... ... @@ -1,25 +1,29 @@
1 1  
2 -BEGIN TRANSACTION
2 +{{code language="sql"}}
3 3  BEGIN TRY
4 -
5 - // Формируем заказ
6 - // ...
7 - // сформировали заказ
8 -
9 - // Вычитаем купленные товары
10 - update Products
11 - Set Count = Count - 1
12 - Where ID = @ProductID
13 -
4 +
5 + BEGIN TRANSACTION
6 +
7 + --Формируем заказ
8 + --...
9 + --сформировали заказ
10 +
11 + --Вычитаем купленные товары
12 + update Products
13 + Set Count = Count - 1
14 + Where ID = @ProductID
15 +
16 + COMMIT
14 14  END TRY
15 15  BEGIN CATCH
16 16  
17 - IF @@TRANCOUNT > 0
18 - BEGIN
19 - ROLLBACK TRANSACTION;
20 - END;
21 -
22 - THROW
20 + IF @@TRANCOUNT > 0
21 + BEGIN
22 + ROLLBACK TRANSACTION;
23 + END;
24 +
25 + THROW
23 23  
24 -END CATCH
25 -COMMIT
27 +END CATCH
28 +{{/code}}
29 +
XWiki.XWikiComments[0]
Комментарий
... ... @@ -1,1 +1,1 @@
1 -Если выполняется 1 операция, то транзакция не требуется
1 +Даже если тело транзакции не указано явно (BEGIN TRANSACTION...), то каждая отдельная команда (SELECT, UPDATE...) выполняется в рамках отдельной транзакции со значением уровня изоляции по умолчанию.
XWiki.XWikiComments[1]
Автор
... ... @@ -1,0 +1,1 @@
1 +XWiki.cccc1808
Комментарий
... ... @@ -1,0 +1,3 @@
1 +Можно явно указать тип блокировки при выполнении запроса
2 +например для SELECT, используя [[Табличные указания (Хинты)>>doc:Разработка.Базы данных.SQL.MSSQL.TSQL.Табличные указания (Хинты).WebHome]].
3 +В таком случае блокировка указанного типа будет удерживаться до окончания транзакции.
Дата
... ... @@ -1,0 +1,1 @@
1 +2020-02-29 12:05:47.950