|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|||
---|---|---|---|
#18+
Rollbac transaction ... |
|||
:
Изменено: 19.04.2023, 09:30 - PaNik
Нравится:
Не нравится:
|
|||
19.04.2023, 09:29 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|||
---|---|---|---|
#18+
Работает нормально, после выполнения этого другие процедуры тоже нормально пишут данные в БД. Единственное, не помню точно, сталкивался с этим раньше или нет, думал, что в самой Delphi это не нужно: имена параметров хп начинаются с @. Сначала попробовал без @ вот так (изменил в примере название хп и параметра, типа соглашение о нераспространении :) ): Код: Delphi 1.
Код: Delphi 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2023, 15:37 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|
---|---|
#18+
Главное понимать , что нет вложенных транзакций. При таком подходе. В стэке xp не надо использовать Begin transaction Commit transaction Rollbac transaction Кстати в субд Firebird в PSQL вообще нельзя использовать управление транзакциями, в смысле start, commit, rollback transaction. Предполагается, что хп выполняется в контексте транзакции, которая стартуется и коммитится или откатывается извне процедуры. Спасибо за подсказку. Ну, я такое вроде и не собирался делать, теперь тем более буду знать. ) У меня по плану (надо вот сегодня дописать и потестировать), там один запрос и одна ХП выполняются. Ну вот перед этим соответстенно вручную собираюсь стартовать транзакцию, а в конце завершать или откатывать. ... |
|
:
|
|
19.04.2023, 16:14 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|||
---|---|---|---|
#18+
Главное понимать , что нет вложенных транзакций. При таком подходе. В стэке xp не надо использовать Begin transaction Commit transaction Rollbac transaction Кстати в субд Firebird в PSQL вообще нельзя использовать управление транзакциями, в смысле start, commit, rollback transaction. Предполагается, что хп выполняется в контексте транзакции, которая стартуется и коммитится или откатывается извне процедуры. Спасибо за подсказку. Ну, я такое вроде и не собирался делать, теперь тем более буду знать. ) У меня по плану (надо вот сегодня дописать и потестировать), там один запрос и одна ХП выполняются. Ну вот перед этим соответстенно вручную собираюсь стартовать транзакцию, а в конце завершать или откатывать. И их разработчиков. Вот им надо запретить. Делать транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2023, 16:19 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|
---|---|
#18+
... На стороне сервера там может быть много вложенных процедур. И их разработчиков. Вот им надо запретить. Делать транзакции. ... |
|
:
|
|
19.04.2023, 16:21 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|
---|---|
#18+
... Кстати в субд Firebird в PSQL вообще нельзя использовать управление транзакциями, в смысле start, commit, rollback transaction. Предполагается, что хп выполняется в контексте транзакции, которая стартуется и коммитится или откатывается извне процедуры. Спасибо за подсказку. Ну, я такое вроде и не собирался делать, теперь тем более буду знать. ) У меня по плану (надо вот сегодня дописать и потестировать), там один запрос и одна ХП выполняются. Ну вот перед этим соответстенно вручную собираюсь стартовать транзакцию, а в конце завершать или откатывать. И их разработчиков. Вот им надо запретить. Делать транзакции. ... |
|
:
|
|
19.04.2023, 16:23 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|||
---|---|---|---|
#18+
... Кстати в субд Firebird в PSQL вообще нельзя использовать управление транзакциями, в смысле start, commit, rollback transaction. Предполагается, что хп выполняется в контексте транзакции, которая стартуется и коммитится или откатывается извне процедуры. Спасибо за подсказку. Ну, я такое вроде и не собирался делать, теперь тем более буду знать. ) У меня по плану (надо вот сегодня дописать и потестировать), там один запрос и одна ХП выполняются. Ну вот перед этим соответстенно вручную собираюсь стартовать транзакцию, а в конце завершать или откатывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2023, 16:26 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|
---|---|
#18+
там русским по-белому про @@trancount написано Например каждый раз его проверять? Это. От очень-очень старых версий сибайз осталось. Изврат. procerdure <proc_name> <параметры> as begin begin try -- тут объявляем переменные, временные таблицы и т.п. -- тут всякие прочие операции (заполнение/модификация данных во времянках и т.п.) -- ... (возможно еще что-то) -- тут (в конце процедуры) - финальная модификация данных begin tran ... -- модифицируем данные commit tran; end try begin catch if @@trancount > 0 roolback; ... end catch; end; go ... |
|
:
|
|
19.04.2023, 16:31 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
#363037
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
прочитай книжку (можно выборочно) по моей ссылке - хоть и по древней версии - понимание работы сервака организует ... |
||||||||||||||||
:
|
||||||||||||||||
19.04.2023, 16:44 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|||
---|---|---|---|
#18+
всегда писал примерно так (тут совсем пседокод): procerdure <proc_name> <паратметры> as begin begin try begin tran ... -- commit tran; end try begin catch if @@trancount > 0 roolback; ... throw @@error_number, @@error_message, 1; end catch; end; go И добротный код везде дублируешь. Дибильный код всегда и везде. P.S. выдел жирным то, что забыл указать изначально ... |
|||
:
Изменено: 19.04.2023, 16:54 - PaNik
Нравится:
Не нравится:
|
|||
19.04.2023, 16:53 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|||
---|---|---|---|
#18+
... Например каждый раз его проверять? Это. От очень-очень старых версий сибайз осталось. Изврат. procerdure <proc_name> <паратметры> as begin begin try begin tran ... -- commit tran; end try begin catch if @@trancount > 0 roolback; throw @@error_number, @@error_message, 1; end catch; end; go И добротный код везде дублируешь. Дибильный код всегда и везде. P.S. выдел жирным то, что забыл указать изначально ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2023, 16:56 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|||
---|---|---|---|
#18+
У вас там ни бригады нет и начальника. Ты ВВ вакууме живёшь? Нет в ms sql вложенных транзакций. Вы там что не можете договориться кто первый начнет транзаацию? Нах эти дибильные проверки? Их будет больше чем реального кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2023, 17:08 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|
---|---|
#18+
У вас там ни бригады нет и начальника. Ты ВВ вакууме живёшь? Нет в ms sql вложенных транзакций. Вы там что не можете договориться кто первый начнет транзаацию? Нах эти дибильные проверки? Их будет больше чем реального кода. Sql это другое. К стати транзакции стали использовать в процессорах. Там тоже есть проблемы когда много ядер и потоков. А семафоры не катят. ... |
|
:
|
|
19.04.2023, 17:27 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|
---|---|
#18+
У вас там ни бригады нет и начальника. Ты ВВ вакууме живёшь? Нет в ms sql вложенных транзакций. Вы там что не можете договориться кто первый начнет транзаацию? Нах эти дибильные проверки? Их будет больше чем реального кода. ... |
|
:
|
|
19.04.2023, 17:27 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|
---|---|
#18+
... Sql это другое. К стати транзакции стали использовать в процессорах. Там тоже есть проблемы когда много ядер и потоков. А семафоры не катят. ... |
|
:
|
|
19.04.2023, 17:41 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|||
---|---|---|---|
#18+
Парик прикольный. Стал много текста писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2023, 17:41 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|
---|---|
#18+
с учетом часовых поясов ничего против не имею возразить ... |
|
:
|
|
19.04.2023, 17:44 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|||
---|---|---|---|
#18+
Мне то, что просто нет вложенных транзакций в ms sql это грусно но понятно. Потому что декларативная система. Это не повторно испольуемеме коды как в си или в ассемблере. Они и так в планах процедур повторно используются и на ходу оптимизируются. Сказал хочу, тото и это а как не ебет. А некоторые хотят сказать как и ещё на каждом шагу, а вдруг не получится? про "Это не повторно испольуемеме коды как в си или в ассемблере" - круто, оптимально по ряду параметров, но "в действительности все не так, как на самом деле" - оптимизатор выбирает примерно оптимальный план. нет вложенных транзакций - все описано, не поверите - в официальной документации. в планах процедур много чего кешируются, а том числе про sniffering и т.д. ... |
|||
:
Изменено: 19.04.2023, 18:04 - PaNik
Нравится:
Не нравится:
|
|||
19.04.2023, 18:03 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|||
---|---|---|---|
#18+
... Это не повторно испольуемеме коды как в си или в ассемблере. Они и так в планах процедур повторно используются и на ходу оптимизируются. Сказал хочу, тото и это а как не ебет. А некоторые хотят сказать как и ещё на каждом шагу, а вдруг не получится? про "Это не повторно испольуемеме коды как в си или в ассемблере" - круто, оптимально по ряду параметров, но "в действительности все не так, как на самом деле" - оптимизатор выбирает примерно оптимальный план. нет вложенных транзакций - все описано, не поверите - в официальной документации. в планах процедур много чего кешируются, а потм вопросы про sniffering и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2023, 18:08 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|||
---|---|---|---|
#18+
... про "Это не повторно испольуемеме коды как в си или в ассемблере" - круто, оптимально по ряду параметров, но "в действительности все не так, как на самом деле" - оптимизатор выбирает примерно оптимальный план. нет вложенных транзакций - все описано, не поверите - в официальной документации. в планах процедур много чего кешируются, а потм вопросы про sniffering и т.д. Это ты шумишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2023, 18:14 |
|
Microsoft SQL Server / Транзакции в MS SQL Server
|
|||
---|---|---|---|
#18+
освежаю в памяти, попутно узнаю много нового https://learn.microsoft.com/ru-Ru/sql/relational-databases/sql-server-transaction-locking-and-row-versioning-guide?view=aps-pdw-2016 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2023, 14:51 |
|
|
Start [/forum/search.php?do_search=1&tid=8919&author_mode=wrote_post&author=PaNik&start_from=363007]: |
0ms |
get settings: |
1ms |
get forum list: |
6ms |
searching: |
23ms |
get settings: |
1ms |
get forum list: |
5ms |
get topic data: |
2ms |
check forum access: |
0ms |
check topic access: |
0ms |
get forum data: |
0ms |
get found posts: |
46ms |
track hit: |
24ms |
get online users: |
46ms |
check new: |
281ms |
others: | 336ms |
total: | 771ms |
0 / 0 |