Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / INSERT в откатываемой транзакции / 17 сообщений из 17, страница 1 из 1
07.08.2002, 16:43:22
    #32041552
Kyt
Kyt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT в откатываемой транзакции
Нужно в транзакции, которая пойдет на RollBack, произвести неоткатываемый INSERT.
Господа, поделитесь опытом, пожалуйста!
Спасибо.
...
Рейтинг: 0 / 0
07.08.2002, 16:47:50
    #32041555
Зайцев Фёдор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT в откатываемой транзакции
Повторяю.
На фиг?
...
Рейтинг: 0 / 0
07.08.2002, 16:56:36
    #32041558
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT в откатываемой транзакции
считается что не возможно....
попробуй чарез openquery(openrowset) вызвать процедуру для изменения...
ага ..чуть не забыл ...SET REMOTE_PROC_TRANSACTIONS OFF
до того....
...
Рейтинг: 0 / 0
07.08.2002, 17:01:29
    #32041560
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT в откатываемой транзакции
хотя не представляю для чего это может понадобится....
помоему через вложенные транзакции это можно решить...
...
Рейтинг: 0 / 0
07.08.2002, 17:02:03
    #32041561
Зайцев Фёдор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT в откатываемой транзакции
Возможно. Но только в виде бага (MSSQL2000).
...
Рейтинг: 0 / 0
07.08.2002, 17:04:25
    #32041562
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT в откатываемой транзакции
ну это небаг.....
это лучше чем свою расширенную процедуру писать и схитрить в ней...
...
Рейтинг: 0 / 0
07.08.2002, 17:07:40
    #32041563
Kyt
Kyt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT в откатываемой транзакции
Идет каскадный вызов процедур, внутри возникает ситуация, которую нужно детализировать, т.е. кроме Return, нужна кокретная информация. Верхняя процедура при получении ошибки, производит RollBack. Как пользователю засветить данные, на которых споткнулись? Print не подходит. Хотелось засунуть все, что надо в таблицу.
...
Рейтинг: 0 / 0
07.08.2002, 17:10:45
    #32041565
VVG_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT в откатываемой транзакции
А RAISERROR на что?
...
Рейтинг: 0 / 0
07.08.2002, 17:12:21
    #32041567
Kyt
Kyt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT в откатываемой транзакции
Не подходит, в виду большой массовой обработки
...
Рейтинг: 0 / 0
07.08.2002, 17:19:35
    #32041572
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT в откатываемой транзакции
ЗЫ... через OPENQUERY долго однако....
лучше писать в лог.....
...
Рейтинг: 0 / 0
07.08.2002, 17:55:10
    #32041602
Makc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT в откатываемой транзакции
в обработчик ошибки 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
07.08.2002, 17:59:33
    #32041606
Kyt
Kyt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT в откатываемой транзакции
У меня ошибка возникает в одной процедуре, а откат транзакции делает чуть ли не самая верхняя процедура.
Которая при ошибке откатывает транзакцию и переходит на другую запись
...
Рейтинг: 0 / 0
07.08.2002, 18:23:33
    #32041628
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT в откатываемой транзакции
ну дык о том тебе и говорят....
анализируй в каждом тригере после вызова вложенного тригера @@error и таблицуистории ошибок ....
...
Рейтинг: 0 / 0
07.08.2002, 20:03:35
    #32041654
Makc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT в откатываемой транзакции
Как я понял у тя транзакция начинает верхняя процедура, а остальные токо что-там делают-меняют.

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

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

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

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

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

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


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