powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как смоделировать исключение при фиксации транзакции?
13 сообщений из 13, страница 1 из 1
Как смоделировать исключение при фиксации транзакции?
    #40112662
vi0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день
Как это сделать?
...
Рейтинг: 0 / 0
Как смоделировать исключение при фиксации транзакции?
    #40112663
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vi0,

лучше озвучьте:
вы какую проблему пытаетесь решить?

формулировка названия топика достаточно "размыта"
...
Рейтинг: 0 / 0
Как смоделировать исключение при фиксации транзакции?
    #40112664
vi0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,
к примеру, хочу сделать тест, который вызовет исключение при фиксации транзакции
...
Рейтинг: 0 / 0
Как смоделировать исключение при фиксации транзакции?
    #40112665
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vi0,

вы можете поиграться с uncommitable состоянием транзакций с помощью set xact_aborrt + блока try/catch, но если вы хотите к примеру добиться поведения что вы:

а) выполнили некий кусок кода в одном батче
Код: sql
1.
2.
  begin tran;
  --какие то действия



б) в другом батче попытались выполнить
Код: sql
1.
commit tran; --и вот на этом месте получили бы Exception



то такого вы не добьетесь.
...
Рейтинг: 0 / 0
Как смоделировать исключение при фиксации транзакции?
    #40112666
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vi0
felix_ff,
к примеру, хочу сделать тест, который вызовет исключение при фиксации транзакции


В отличие от названия топика это объясняет многое.
А что такое у нас "фиксация транзакции"? И что такое "исключение" ?
...
Рейтинг: 0 / 0
Как смоделировать исключение при фиксации транзакции?
    #40112668
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vi0,

в теории можно поиграться с чем то вроде этого:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
--batch 1
set xact_abort on;

drop table if exists #tmp;
create table #tmp (id int);

begin tran;
--//batch 1


--batch 2
declare @needException bit = 0; --изменить для выброса исключения в третьем батче
insert into #tmp values (1);
if @needException = 1 set context_info 0x1 else set context_info 0x0;
select @@trancount as [batch2_trancount], xact_state() as [batch2_xact_state]
--//batch 2;


--batch 3
select @@trancount as [batch3_trancount], xact_state() as [batch3_xact_state]; 
begin try
     if context_info() = 0x1 select 1/0;
     commit tran;
end try
begin catch
     select @@trancount as [batch3_trancount], xact_state() as [batch3_xact_state_in_catch]; 
     commit tran;
end catch
--//batch 3
...
Рейтинг: 0 / 0
Как смоделировать исключение при фиксации транзакции?
    #40112675
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vi0
Как это сделать?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
set xact_abort on;

begin tran;

begin try
 throw 50000, 'Exception', 1;
end try
begin catch
end catch;

commit;
...
Рейтинг: 0 / 0
Как смоделировать исключение при фиксации транзакции?
    #40112725
vi0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо за примеры
а как вы считаете, какие могут быть реальные причины исключений при фиксации обычной транзакции?
...
Рейтинг: 0 / 0
Как смоделировать исключение при фиксации транзакции?
    #40112730
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vi0
какие могут быть реальные причины исключений при фиксации обычной транзакции?
транзакция в нефиксируемом состоянии
переполнение ЖТ
железячные проблемы
...
Рейтинг: 0 / 0
Как смоделировать исключение при фиксации транзакции?
    #40112732
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm
vi0
какие могут быть реальные причины исключений при фиксации обычной транзакции?
транзакция в нефиксируемом состоянии
переполнение ЖТ
железячные проблемы


Проблемы с фиксацией транзакции на синхронной реплике
...
Рейтинг: 0 / 0
Как смоделировать исключение при фиксации транзакции?
    #40112758
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vi0
спасибо за примеры
а как вы считаете, какие могут быть реальные причины исключений при фиксации обычной транзакции?


Вы уходите от ответа на вопрос
"А что такое у нас "фиксация транзакции"? И что такое "исключение" ?"
похоже и сами не в курсе.


Реальная причина


declare @x int =1
declare @y int =0
declare @j int =997
set @j = @x/@y
...
Рейтинг: 0 / 0
Как смоделировать исключение при фиксации транзакции?
    #40113477
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
vi0
спасибо за примеры
а как вы считаете, какие могут быть реальные причины исключений при фиксации обычной транзакции?


Вы уходите от ответа на вопрос
"А что такое у нас "фиксация транзакции"? И что такое "исключение" ?"
похоже и сами не в курсе.


Реальная причина


declare @x int =1
declare @y int =0
declare @j int =997
set @j = @x/@y


-- test
...
Рейтинг: 0 / 0
Как смоделировать исключение при фиксации транзакции?
    #40113544
vi0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, коллеги
всё понятно
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как смоделировать исключение при фиксации транзакции?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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