powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / INSERT в откатываемой транзакции
17 сообщений из 17, страница 1 из 1
INSERT в откатываемой транзакции
    #32041552
Kyt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kyt
Гость
Нужно в транзакции, которая пойдет на RollBack, произвести неоткатываемый INSERT.
Господа, поделитесь опытом, пожалуйста!
Спасибо.
...
Рейтинг: 0 / 0
INSERT в откатываемой транзакции
    #32041555
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Повторяю.
На фиг?
...
Рейтинг: 0 / 0
INSERT в откатываемой транзакции
    #32041558
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
считается что не возможно....
попробуй чарез openquery(openrowset) вызвать процедуру для изменения...
ага ..чуть не забыл ...SET REMOTE_PROC_TRANSACTIONS OFF
до того....
...
Рейтинг: 0 / 0
INSERT в откатываемой транзакции
    #32041560
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя не представляю для чего это может понадобится....
помоему через вложенные транзакции это можно решить...
...
Рейтинг: 0 / 0
INSERT в откатываемой транзакции
    #32041561
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно. Но только в виде бага (MSSQL2000).
...
Рейтинг: 0 / 0
INSERT в откатываемой транзакции
    #32041562
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну это небаг.....
это лучше чем свою расширенную процедуру писать и схитрить в ней...
...
Рейтинг: 0 / 0
INSERT в откатываемой транзакции
    #32041563
Kyt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kyt
Гость
Идет каскадный вызов процедур, внутри возникает ситуация, которую нужно детализировать, т.е. кроме Return, нужна кокретная информация. Верхняя процедура при получении ошибки, производит RollBack. Как пользователю засветить данные, на которых споткнулись? Print не подходит. Хотелось засунуть все, что надо в таблицу.
...
Рейтинг: 0 / 0
INSERT в откатываемой транзакции
    #32041565
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А RAISERROR на что?
...
Рейтинг: 0 / 0
INSERT в откатываемой транзакции
    #32041567
Kyt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kyt
Гость
Не подходит, в виду большой массовой обработки
...
Рейтинг: 0 / 0
INSERT в откатываемой транзакции
    #32041572
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ... через OPENQUERY долго однако....
лучше писать в лог.....
...
Рейтинг: 0 / 0
INSERT в откатываемой транзакции
    #32041602
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в обработчик ошибки insert засунь
У меня так
begin transaction

exec(..)
if @@error<>0 goto ErrorHandler
.....
insert into ...
if @@error<>0 goto ErrorHandler
.....
.....
commit transaction
return(0)

ErrorHandler:
rollback transaction
insert into tbl_errors (desc, date) values 'bla-bla-bla',
GetDate()

return (ErrorCode)


Токо тебе нужно в таблицу еще что-то засунуть чтоб
верхняя транзакция могла однозначно определить ID ошибки, можа @@SPID или System_User
...
Рейтинг: 0 / 0
INSERT в откатываемой транзакции
    #32041606
Kyt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kyt
Гость
У меня ошибка возникает в одной процедуре, а откат транзакции делает чуть ли не самая верхняя процедура.
Которая при ошибке откатывает транзакцию и переходит на другую запись
...
Рейтинг: 0 / 0
INSERT в откатываемой транзакции
    #32041628
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну дык о том тебе и говорят....
анализируй в каждом тригере после вызова вложенного тригера @@error и таблицуистории ошибок ....
...
Рейтинг: 0 / 0
INSERT в откатываемой транзакции
    #32041654
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я понял у тя транзакция начинает верхняя процедура, а остальные токо что-там делают-меняют.

Можно конечно, но не очень гибко ...
Нижние отдельно от верхней использовать корректно не сможешь.
Ваще, любая процедура, меняющая данные более чем в двух
таблицах должна начинаться транзакцией.

Ну а в твоем случае все просто.
Складываешь ошибки в таблицу и анализируй потом их в верхней сколь угодно.

Токо используй правило анализируй ошибки процедур 3 уровня на 2, 2-го на 1. Т.е. не надо в процедуре смотреть ошибки произошедшие в процедуре сгенерированные процедурой, которую вызвала процедура, которуую вызвала процедура ..... etc
...
Рейтинг: 0 / 0
INSERT в откатываемой транзакции
    #32041658
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на сколь ко я понял это все во вложенных тригеррах...
самое главное точно идентифицировать таблицу ошибок...
...
Рейтинг: 0 / 0
INSERT в откатываемой транзакции
    #32041662
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты сам-то понял что спросил?!?!?! После этого базу можно выкидывать нахрен!!!

Милейший, почитайте книжки про основы клиент-серверных систем (особенно про то, что такое транзакции зачем они нужны и какими свойствами обладают)...
...
Рейтинг: 0 / 0
INSERT в откатываемой транзакции
    #32042307
Dimos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Предлагаю следующий вариант:
предположим есть SP P_Top(...) вехнего уровня, где начинается транзакция, и процедура Px(...) "нижнего" уровня, которая выбрасывает ERROR.

Так вот, в обработчике ошибок в процедура Px(...) в таблицу ошибок делается INSERT и ошибка re-rais-ится.

P_Top(...) ловит ошибку и смотрит в таблицу ошибок ДО ТОГО как откатить транзакцию.
Потом откатывает транзакцию.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / INSERT в откатываемой транзакции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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