powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Microsoft SQL Server [закрыт для гостей] / Транзакции в MS SQL Server, Поиск: Искать сообщения, созданные автором: cat2  
25 сообщений из 34, страница 1 из 2
Microsoft SQL Server / Транзакции в MS SQL Server
    #364280
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
s62  18.04.2023, 17:28
[игнорируется]
Код: Delphi
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Adoconnection.BeginTrans
try
  ...
  ...
  AdoConnection.CommitTrans;
except
  ...
  AdoConnection.RollbackTrans;
  ...
end;
Открывать и закрывать транзакции на клиенте - дурной тон.
Если надо выполнить несколько операторов, то их надо обернуть в xp.
В самой хп никаких транзакций открывать не надо, так как по умолчанию хп выполняется в контексте одной транзакции
...
Рейтинг: 1 / 0
Нравится: megabyte
Microsoft SQL Server / Транзакции в MS SQL Server
    #364287
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Горбатый ёж  20.04.2023, 16:56
[игнорируется]
cat2  20.04.2023, 16:52
[игнорируется]
Открывать и закрывать транзакции на клиенте - дурной тон.
Ох, йо...
Как с вами тяжело...
Еще один решил потролить? По существу возражения есть? Как радостно открывать транзакции на клиенте?
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #364368
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Горбатый ёж  20.04.2023, 17:15
[игнорируется]
cat2  20.04.2023, 17:04
[игнорируется]
По существу возражения есть?
В одном бизнес процессе нужно выполнить 3 процедуры, в другом бизнес процессе нужно выполнить 2 из тех трёх процедур.
При этом оба процесса могут быть запущены на одном клиенте.
Давай, расскажи где ты будешь стартовать транзакции, если не на клиенте.
Хотя ты наверное скажешь, что не надо стартовать, достаточно зафиксировать изменения.
Только вопрос, насколько ты уверен с том, что в текущей транзакции не были внесены ранее каким либо изменения помимо интересующего бизнес процесса. И ещё как ты будешь обрабатывать ошибки и насколько хорошо будет видно по коду в каком процессе возникает ошибка?
Вот напугал.
Создаю три ХП. Потом создаю еще две. В одной вызываются две из трех, в другой - все три
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #364372
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Еще так можно.
Передавать в ХП параметр, который будет определять, надо ли выполнять все, или часть
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #364413
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Ифрит  20.04.2023, 19:53
[игнорируется]
cat2  20.04.2023, 19:21
[игнорируется]
Еще так можно.
Передавать в ХП параметр, который будет определять, надо ли выполнять все, или часть
кто будет это счастие потом поддерживать, не раз добрым словом по матушке вспомнит.. [:smile]
Во-первых, надо думать сначала о том, как программа работает, а уж потом о тех, кто ее поддерживать будет.
Во-вторых, кто мешает написать комментарии?
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #364451
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Горбатый ёж  20.04.2023, 20:33
[игнорируется]
cat2  20.04.2023, 19:13
[игнорируется]
В одной вызываются две из трех, в другой - все три
В чём в одной и другой?
Допустим, есть три запроса, , каждый из них записываем в ХП.
Получаем XP1, XP2, XP3

Создаем XP4, в нем вызываются XP1, XP2, XP3
Создаем XP5, в нем вызываются XP1, XP2
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #364457
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Ифрит  20.04.2023, 20:26
[игнорируется]
cat2  20.04.2023, 20:10
[игнорируется]
Ифрит  20.04.2023, 19:53
[игнорируется]
cat2  20.04.2023, 19:21
[игнорируется]
Еще так можно.
Передавать в ХП параметр, который будет определять, надо ли выполнять все, или часть
кто будет это счастие потом поддерживать, не раз добрым словом по матушке вспомнит.. [:smile]
Во-первых, надо думать сначала о том, как программа работает, а уж потом о тех, кто ее поддерживать будет.
Во-вторых, кто мешает написать комментарии?
думать о том как она работает, это в т.ч. и будет задачей преемников
а хорошо прокомментированная вермишель... ну, в общем - да, может облегчить её рефракторинг ))
Вермишель, это когда процедуры в коде косяком друг за другом идут, а когда вместо
Код: Delphi
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Adoconnection.BeginTrans
try
  ...
  ...
  AdoConnection.CommitTrans;
except
  ...
  AdoConnection.RollbackTrans;
  ...
end;
есть один вызов - это бифштекс. При рефакторинге достаточно переписать одну XP, а не перекомпилировать код программы и устанавливать обновления пользователям.

Кстати, и внутри XP тоже можно комменты писать
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #364496
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Ифрит  20.04.2023, 21:40
[игнорируется]
плюсом жесть, ещё выше, в виде "частично выполняющихся" процедур
А тебя не удивляют операторы if, которые тоже служат для частичного выполнения?
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #365510
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Неуловимый Джо  20.04.2023, 23:57
[игнорируется]
cat2  20.04.2023, 16:52
[игнорируется]
В самой хп никаких транзакций открывать не надо, так как по умолчанию хп выполняется в контексте одной транзакции
не путаешь с триггером?
Нет
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #365526
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Неуловимый Джо  21.04.2023, 08:26
[игнорируется]
Горбатый ёж  21.04.2023, 07:07
[игнорируется]
Неуловимый Джо  21.04.2023, 00:00
[игнорируется]
В хранимках каждый оператор в отдельной неявной транзакции.
Ты серьёзно?
Мы же про SQL Server?

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

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

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

https://dba.stackexchange.com/questions/46261/dont-use-a-transaction-for-stored-procedure#46266
Форумы меня не убеждают
Это ведь легко проверить, там даже тестовый код есть.
Делать мне больше нечего.
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #365577
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Неуловимый Джо  21.04.2023, 00:00
[игнорируется]
В хранимках каждый оператор в отдельной неявной транзакции.
Я тебе больше скажу. Любой единичный запрос выполняется в отдельной неявной транзакции
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #365589
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Неуловимый Джо  21.04.2023, 17:45
[игнорируется]
cat2  21.04.2023, 17:40
[игнорируется]
Неуловимый Джо  21.04.2023, 00:00
[игнорируется]
В хранимках каждый оператор в отдельной неявной транзакции.
Я тебе больше скажу. Любой единичный запрос выполняется в отдельной неявной транзакции
В том числе и внутри хранимки.
Ладно не важно, не хочешь признавать ошибку )
Какую?
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #365590
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Неуловимый Джо  21.04.2023, 17:50
[игнорируется]
ну там на самом деле не каждый оператор конечно, есть список этих самых операторов.
Согласен. Select транзакций не порождает
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #365657
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Неуловимый Джо  21.04.2023, 17:54
[игнорируется]
cat2  21.04.2023, 17:51
[игнорируется]
Неуловимый Джо  21.04.2023, 17:45
[игнорируется]
cat2  21.04.2023, 17:40
[игнорируется]
Неуловимый Джо  21.04.2023, 00:00
[игнорируется]
...
Я тебе больше скажу. Любой единичный запрос выполняется в отдельной неявной транзакции
В том числе и внутри хранимки.
Ладно не важно, не хочешь признавать ошибку )
Какую?
Вилять начинаешь чтоли?

Ты писал.
"В самой хп никаких транзакций открывать не надо, так как по умолчанию хп выполняется в контексте одной транзакции"

Это ошибка.
Это так и есть
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #365662
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Неуловимый Джо  21.04.2023, 17:56
[игнорируется]
cat2  21.04.2023, 17:52
[игнорируется]
Неуловимый Джо  21.04.2023, 17:50
[игнорируется]
ну там на самом деле не каждый оператор конечно, есть список этих самых операторов.
Согласен. Select транзакций не порождает
Порождает.

ALTER TABLE

FETCH

REVOKE

BEGIN TRANSACTION

GRANT

SELECT (See exception below.)

CREATE

INSERT

TRUNCATE TABLE

DELETE

MERGE

UPDATE

DROP

OPEN

----------------
SELECT statements that do not select from a table do not start implicit transactions. For example SELECT GETDATE(); or SELECT 1, 'ABC'; do not require transactions.
Ссылочку дай, где это написано.
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #365669
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
cat2  21.04.2023, 19:03
[игнорируется]
Ссылочку дай, где это написано.
Не надо, понял. Это про то, если установлен экзотический режим - SET IMPLICIT_TRANSACTIONS ON.
По умолчание он выключен
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #365711
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Неуловимый Джо  21.04.2023, 19:27
[игнорируется]
Операторы в процедуре НЕ выполняются в одной транзакции, проверяется элементарным экспериментом.
Ну, давай эксперимент
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #365729
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Неуловимый Джо  21.04.2023, 20:03
[игнорируется]
Это не откат транзакции, это просто результат первого селекта.
Я тоже это понял. Хреновый пример привел
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #365731
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Неуловимый Джо  21.04.2023, 20:08
[игнорируется]
cat2  21.04.2023, 20:07
[игнорируется]
Неуловимый Джо  21.04.2023, 20:03
[игнорируется]
Это не откат транзакции, это просто результат первого селекта.
Я тоже это понял. Хреновый пример привел
почему хреновый.
как раз хороший пример.
Первый апдейт выполнился.

И ОСТАЛСЯ :)
Не было события, которое бы прервало транзакцию
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #365737
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Если написать
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
BEGIN
begin tran
  update t SET t = 1
  update t SET t = 'A' --это откатит транзакцию
  update t SET t = 2
commit

END
То отката тоже нет
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #365751
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Я просто не нашел способа, что бы транзакция прервалась. :(
...
Рейтинг: 0 / 0
Microsoft SQL Server / Транзакции в MS SQL Server
    #365752
cat2
Скрыть профиль Поместить в игнор-лист
Участник
Гесты и игнорируемые идут по CSS
Неуловимый Джо  21.04.2023, 20:19
[игнорируется]
cat2 [игнорируется] 

Я уже раз в пятый прошу, приведи ссылку, откуда ты это вообще взял?
Что?
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / Microsoft SQL Server [закрыт для гостей] / Транзакции в MS SQL Server, Поиск: Искать сообщения, созданные автором: cat2  
Читали тему (3): Анонимы (3)
Читали форум (5): Анонимы (4), Yandex Bot 6 мин.
Пользователи онлайн (103): Анонимы (90), Yandex Bot, anonymous, жЫвоглот, Tabula Rasa, Сталкер 1 мин., Гарыныч 1 мин., Sparrow 1 мин., IT-Клоп 3 мин., prostozevs 3 мин., Bing Bot 4 мин., Буся 5 мин., С чистого листа 5 мин., Кусь 6 мин.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
x
x
Закрыть


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