powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [закрыт для гостей] / Транзакции в MS SQL Server
25 сообщений из 178, страница 5 из 8
Транзакции в MS SQL Server
    #364457
cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Гесты и игнорируемые идут по CSS
Ифрит  20.04.2023, 20:26:34
[игнорируется]
cat2  20.04.2023, 20:10:49
[игнорируется]
Ифрит  20.04.2023, 19:53:41
[игнорируется]
cat2  20.04.2023, 19:21:45
[игнорируется]
Еще так можно.
Передавать в ХП параметр, который будет определять, надо ли выполнять все, или часть
кто будет это счастие потом поддерживать, не раз добрым словом по матушке вспомнит.. [:smile]
Во-первых, надо думать сначала о том, как программа работает, а уж потом о тех, кто ее поддерживать будет.
Во-вторых, кто мешает написать комментарии?
думать о том как она работает, это в т.ч. и будет задачей преемников
а хорошо прокомментированная вермишель... ну, в общем - да, может облегчить её рефракторинг ))
Вермишель, это когда процедуры в коде косяком друг за другом идут, а когда вместо
Код: Delphi
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Adoconnection.BeginTrans
try
  ...
  ...
  AdoConnection.CommitTrans;
except
  ...
  AdoConnection.RollbackTrans;
  ...
end;
есть один вызов - это бифштекс. При рефакторинге достаточно переписать одну XP, а не перекомпилировать код программы и устанавливать обновления пользователям.

Кстати, и внутри XP тоже можно комменты писать
...
Игнорируются: Межгалактический разум, erbol, W3, WWW, Огрищще, а также многочисленные кролики и паши
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #364485
Фотография Ифрит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cat2  20.04.2023, 21:26:14
[игнорируется]
Ифрит  20.04.2023, 20:26:34
[игнорируется]
cat2  20.04.2023, 20:10:49
[игнорируется]
Ифрит  20.04.2023, 19:53:41
[игнорируется]
cat2  20.04.2023, 19:21:45
[игнорируется]
...
кто будет это счастие потом поддерживать, не раз добрым словом по матушке вспомнит.. [:smile]
Во-первых, надо думать сначала о том, как программа работает, а уж потом о тех, кто ее поддерживать будет.
Во-вторых, кто мешает написать комментарии?
думать о том как она работает, это в т.ч. и будет задачей преемников
а хорошо прокомментированная вермишель... ну, в общем - да, может облегчить её рефракторинг ))
Вермишель, это когда процедуры в коде косяком друг за другом идут, а когда вместо
Код: Delphi
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Adoconnection.BeginTrans
try
  ...
  ...
  AdoConnection.CommitTrans;
except
  ...
  AdoConnection.RollbackTrans;
  ...
end;
есть один вызов - это бифштекс. При рефакторинге достаточно переписать одну XP, а не перекомпилировать код программы и устанавливать обновления пользователям.

Кстати, и внутри XP тоже можно комменты писать
думаю, вермишель, это как раз то, что в комменте выше, плюсом жесть, ещё выше, в виде "частично выполняющихся" процедур.
а тут, кмк, с нагромождением новых разруливвающих процедур, речь идёт об "ещё одном клиентском" уровне на серверной стороне.
и такие городушки косвености, это снова и опять вот та самая лапшичка, хоть аргументы к сему "а не перекомпилировать код программы и устанавливать обновления пользователям" и понятны, но.. линейный бифштекс в поддержке и развитии проще и перспективней, имхо
...
Изменено: 20.04.2023, 21:44:23 - Ифрит
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #364496
cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Гесты и игнорируемые идут по CSS
Ифрит  20.04.2023, 21:40:42
[игнорируется]
плюсом жесть, ещё выше, в виде "частично выполняющихся" процедур
А тебя не удивляют операторы if, которые тоже служат для частичного выполнения?
...
Игнорируются: Межгалактический разум, erbol, W3, WWW, Огрищще, а также многочисленные кролики и паши
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #364523
Фотография Ифрит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cat2  20.04.2023, 21:51:25
[игнорируется]
Ифрит  20.04.2023, 21:40:42
[игнорируется]
плюсом жесть, ещё выше, в виде "частично выполняющихся" процедур
А тебя не удивляют операторы if, которые тоже служат для частичного выполнения?
или неправильно понял, или... ))
if именно с целью "частичного" - повезло, не доводилось встречать такого

хотя... было, возможно, что и - близко: если аргумент истина, то выполняем всё, иначе - то выводим только диагностику
но, мотивом к этому было не частичное выполнение бизнеслогики, а те if-чики были внедрены только для повторного использования кода

как я понял, выше ты не о подобном случае писал
...
Изменено: 20.04.2023, 22:15:24 - Ифрит
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #364529
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cat2  20.04.2023, 21:20:41
[игнорируется]
Горбатый ёж  20.04.2023, 20:33:04
[игнорируется]
cat2  20.04.2023, 19:13:10
[игнорируется]
В одной вызываются две из трех, в другой - все три
В чём в одной и другой?
Допустим, есть три запроса, , каждый из них записываем в ХП.
Получаем XP1, XP2, XP3

Создаем XP4, в нем вызываются XP1, XP2, XP3
Создаем XP5, в нем вызываются XP1, XP2
Феерично.
Код потом такой разбирать просто чудесно.
Но ещё раз вопрос, в чём ты эти процедуры запускать будешь? Уж не в транзакциях ли? А как ты можешь быть уверен, что у тебя в рамках транзакции выполнена только одна и нужная процедура?
...
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #364574
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cat2  20.04.2023, 16:52:48
[игнорируется]
В самой хп никаких транзакций открывать не надо, так как по умолчанию хп выполняется в контексте одной транзакции
не путаешь с триггером?
...
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #364576
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В хранимках каждый оператор в отдельной неявной транзакции.
...
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #364652
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неуловимый Джо  21.04.2023, 00:00:47
[игнорируется]
В хранимках каждый оператор в отдельной неявной транзакции.
Ты серьёзно?
...
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #364673
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  21.04.2023, 07:07:13
[игнорируется]
Неуловимый Джо  21.04.2023, 00:00:47
[игнорируется]
В хранимках каждый оператор в отдельной неявной транзакции.
Ты серьёзно?
да.
...
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #364675
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужна транзакция, то нужно делать явную.

А насчет того что нет вложенных транзакций, так их нигде нет.
А там где якобы есть (типа автономные), так это уже и не транзакции, так как нарушаются принципы ACID.
...
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #364685
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  21.04.2023, 07:07:13
[игнорируется]
Неуловимый Джо  21.04.2023, 00:00:47
[игнорируется]
В хранимках каждый оператор в отдельной неявной транзакции.
Ты серьёзно?
Мы же про SQL Server?

https://dba.stackexchange.com/questions/46261/dont-use-a-transaction-for-stored-procedure#46266
...
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #364692
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну это по крайней мере режим по умолчанию.
...
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #364694
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неуловимый Джо  21.04.2023, 08:33:20
[игнорируется]
Ну это по крайней мере режим по умолчанию.
Обалдеть!
...
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #364697
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  21.04.2023, 08:35:17
[игнорируется]
Неуловимый Джо  21.04.2023, 08:33:20
[игнорируется]
Ну это по крайней мере режим по умолчанию.
Обалдеть!
В Postgresql я слышал функции вроде действительно внутри своей транзакции.
Ну а чего там обалдеть, просто учитывать этот факт.
...
Изменено: 21.04.2023, 08:39:05 - Неуловимый Джо
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #364699
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неуловимый Джо  21.04.2023, 08:37:02
[игнорируется]
Ну а чего там обалдеть, просто учитывать этот факт.
Я к такому не привык.
Обычно в процедуру объединяются действия, которые необходимо выполнить за раз, соответственно при ошибке в одном из них откатить все остальные изменения.
А тут как-то неожиданно получается.
...
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #365510
cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Гесты и игнорируемые идут по CSS
Неуловимый Джо  20.04.2023, 23:57:41
[игнорируется]
cat2  20.04.2023, 16:52:48
[игнорируется]
В самой хп никаких транзакций открывать не надо, так как по умолчанию хп выполняется в контексте одной транзакции
не путаешь с триггером?
Нет
...
Игнорируются: Межгалактический разум, erbol, W3, WWW, Огрищще, а также многочисленные кролики и паши
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #365526
cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Гесты и игнорируемые идут по CSS
Неуловимый Джо  21.04.2023, 08:26:55
[игнорируется]
Горбатый ёж  21.04.2023, 07:07:13
[игнорируется]
Неуловимый Джо  21.04.2023, 00:00:47
[игнорируется]
В хранимках каждый оператор в отдельной неявной транзакции.
Ты серьёзно?
Мы же про SQL Server?

https://dba.stackexchange.com/questions/46261/dont-use-a-transaction-for-stored-procedure#46266
Форумы меня не убеждают
...
Игнорируются: Межгалактический разум, erbol, W3, WWW, Огрищще, а также многочисленные кролики и паши
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #365528
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cat2  21.04.2023, 17:08:15
[игнорируется]
Неуловимый Джо  21.04.2023, 08:26:55
[игнорируется]
Горбатый ёж  21.04.2023, 07:07:13
[игнорируется]
Неуловимый Джо  21.04.2023, 00:00:47
[игнорируется]
В хранимках каждый оператор в отдельной неявной транзакции.
Ты серьёзно?
Мы же про SQL Server?

https://dba.stackexchange.com/questions/46261/dont-use-a-transaction-for-stored-procedure#46266
Форумы меня не убеждают
А что убедит?
...
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #365565
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cat2  21.04.2023, 17:08:15
[игнорируется]
Неуловимый Джо  21.04.2023, 08:26:55
[игнорируется]
Горбатый ёж  21.04.2023, 07:07:13
[игнорируется]
Неуловимый Джо  21.04.2023, 00:00:47
[игнорируется]
В хранимках каждый оператор в отдельной неявной транзакции.
Ты серьёзно?
Мы же про SQL Server?

https://dba.stackexchange.com/questions/46261/dont-use-a-transaction-for-stored-procedure#46266
Форумы меня не убеждают
Это ведь легко проверить, там даже тестовый код есть.
...
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #365566
cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Гесты и игнорируемые идут по CSS
Горбатый ёж  20.04.2023, 22:21:02
[игнорируется]
cat2  20.04.2023, 21:20:41
[игнорируется]
Горбатый ёж  20.04.2023, 20:33:04
[игнорируется]
cat2  20.04.2023, 19:13:10
[игнорируется]
В одной вызываются две из трех, в другой - все три
В чём в одной и другой?
Допустим, есть три запроса, , каждый из них записываем в ХП.
Получаем XP1, XP2, XP3

Создаем XP4, в нем вызываются XP1, XP2, XP3
Создаем XP5, в нем вызываются XP1, XP2
Феерично.
Код потом такой разбирать просто чудесно.
Но ещё раз вопрос, в чём ты эти процедуры запускать будешь? Уж не в транзакциях ли? А как ты можешь быть уверен, что у тебя в рамках транзакции выполнена только одна и нужная процедура?
Честно не понимаю в чем проблема с разбором.
Ну назови XP4 PizdecAndBliat , а XP5 - PizdecOnly

Я уже писал, что открытие транзакции будут обеспечивать сами хранимые процедуры.
Любая ошибка любого запроса внутри ХП, в том числе и выполнения другой хранимой процедуры, вызывает откат действий всей хранимой процедуры.

То есть в теле хранимой процедуры XP4 конечно можно написать:
Код: SQL
1.
2.
3.
4.
5.
begin tran
execute XP1
execute XP2
execute XP3
commit
Просто begin tran и commit здесь необязательны, так как MS SQL и так обрамляет тело XP этими операторами.
Мы ведь про MS SQL говорим? В других СУБД может быть и не так, я не знаю

...
Игнорируются: Межгалактический разум, erbol, W3, WWW, Огрищще, а также многочисленные кролики и паши
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #365567
cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Гесты и игнорируемые идут по CSS
Неуловимый Джо  21.04.2023, 17:08:52
[игнорируется]
cat2  21.04.2023, 17:08:15
[игнорируется]
Неуловимый Джо  21.04.2023, 08:26:55
[игнорируется]
Горбатый ёж  21.04.2023, 07:07:13
[игнорируется]
Неуловимый Джо  21.04.2023, 00:00:47
[игнорируется]
...
Ты серьёзно?
Мы же про SQL Server?

https://dba.stackexchange.com/questions/46261/dont-use-a-transaction-for-stored-procedure#46266
Форумы меня не убеждают
А что убедит?
Ссылка на официальную документацию
...
Игнорируются: Межгалактический разум, erbol, W3, WWW, Огрищще, а также многочисленные кролики и паши
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #365568
cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Гесты и игнорируемые идут по CSS
Неуловимый Джо  21.04.2023, 17:30:18
[игнорируется]
cat2  21.04.2023, 17:08:15
[игнорируется]
Неуловимый Джо  21.04.2023, 08:26:55
[игнорируется]
Горбатый ёж  21.04.2023, 07:07:13
[игнорируется]
Неуловимый Джо  21.04.2023, 00:00:47
[игнорируется]
...
Ты серьёзно?
Мы же про SQL Server?

https://dba.stackexchange.com/questions/46261/dont-use-a-transaction-for-stored-procedure#46266
Форумы меня не убеждают
Это ведь легко проверить, там даже тестовый код есть.
Делать мне больше нечего.
...
Игнорируются: Межгалактический разум, erbol, W3, WWW, Огрищще, а также многочисленные кролики и паши
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #365570
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cat2  21.04.2023, 17:31:13
[игнорируется]
Неуловимый Джо  21.04.2023, 17:08:52
[игнорируется]
cat2  21.04.2023, 17:08:15
[игнорируется]
Неуловимый Джо  21.04.2023, 08:26:55
[игнорируется]
Горбатый ёж  21.04.2023, 07:07:13
[игнорируется]
...
Мы же про SQL Server?

https://dba.stackexchange.com/questions/46261/dont-use-a-transaction-for-stored-procedure#46266
Форумы меня не убеждают
А что убедит?
Ссылка на официальную документацию
Так приведи ссылку на официальную документацию, доказывающую, что операторы внутри хранимки выполняются в одной транзакции?
...
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #365577
cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Гесты и игнорируемые идут по CSS
Неуловимый Джо  21.04.2023, 00:00:47
[игнорируется]
В хранимках каждый оператор в отдельной неявной транзакции.
Я тебе больше скажу. Любой единичный запрос выполняется в отдельной неявной транзакции
...
Игнорируются: Межгалактический разум, erbol, W3, WWW, Огрищще, а также многочисленные кролики и паши
Рейтинг: 0 / 0
Транзакции в MS SQL Server
    #365584
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cat2  21.04.2023, 17:40:08
[игнорируется]
Неуловимый Джо  21.04.2023, 00:00:47
[игнорируется]
В хранимках каждый оператор в отдельной неявной транзакции.
Я тебе больше скажу. Любой единичный запрос выполняется в отдельной неявной транзакции
В том числе и внутри хранимки.
Ладно не важно, не хочешь признавать ошибку )
...
Рейтинг: 0 / 0
25 сообщений из 178, страница 5 из 8
Форумы / Microsoft SQL Server [закрыт для гостей] / Транзакции в MS SQL Server
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]