Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запись в таблицу в транзации несмотря на откат транзакции.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Вообщем с целью отладки необходимо записывть в транзакции в таблицу событий определенные данные независимо от того будет откатыватся транзакция или нет. На данный момент соображение только одно которое еще в добавок не проверял. В процедуре записи записываю в буферную таблицу необходимую информацию.Затем подключаю новое ОДБС соединение(если оно уже есть то пользуюсь им, ну чтобы каждый раз при записи не создавать новое) и через него с помощью nolock получаю данные из буферной таблицы и перекладываю в таблицу событий. Вот такие вот соображения... Может есть варианты попроще?
29 мар 04, 09:43    [601266]     Ответить | Цитировать Сообщить модератору
 Re: Запись в таблицу в транзации несмотря на откат транзакции.  [new]
bushmen
Member

Откуда: г. Москва
Сообщений: 828
А нельзя ли в таблицу событий записывать данные еще до начала транзакции?
29 мар 04, 09:49    [601275]     Ответить | Цитировать Сообщить модератору
 Re: Запись в таблицу в транзации несмотря на откат транзакции.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Еще раз повторяю , конечная цель отладка со всеми вытекающими последствиями. Нет нельзя, некоторая интересующая информация формируется внутри транзакции..
29 мар 04, 10:00    [601295]     Ответить | Цитировать Сообщить модератору
 Re: Запись в таблицу в транзации несмотря на откат транзакции.  [new]
bushmen
Member

Откуда: г. Москва
Сообщений: 828
Ну, тогда могу посоветовать сохранить всю формируемую инфу в переменных
29 мар 04, 10:02    [601300]     Ответить | Цитировать Сообщить модератору
 Re: Запись в таблицу в транзации несмотря на откат транзакции.  [new]
rst
Member

Откуда: Йобурк
Сообщений: 1005
Примерно в таком виде можно:
exec xp_cmdshell 'echo '+@WRITELOG+' >LogFile.txt'
29 мар 04, 10:06    [601308]     Ответить | Цитировать Сообщить модератору
 Re: Запись в таблицу в транзации несмотря на откат транзакции.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
То rst. Приблизительно от этого я ушел т.к. неудобно обрабатывапть потом.:)

То bushmen. Для отладки в переменных ? Не, не пойдет.
29 мар 04, 10:26    [601349]     Ответить | Цитировать Сообщить модератору
 Re: Запись в таблицу в транзации несмотря на откат транзакции.  [new]
rst
Member

Откуда: Йобурк
Сообщений: 1005
неудобно обрабатывапть потом.

create proc WriteLOG(@st varchar(100))

as
begin
exec xp_cmdshell ' writetolog.exe '+@st+' SQLSERVERNAME DBNAME TABLENAME',NO_OUTPUT
end


Писать текст в ту же базу..
29 мар 04, 10:41    [601387]     Ответить | Цитировать Сообщить модератору
 Re: Запись в таблицу в транзации несмотря на откат транзакции.  [new]
iSestrin
Member

Откуда: Новосибирск
Сообщений: 3811
писать текст в виде sql в локальную переменную, после commit/rollback, если она непустая - выполнить
29 мар 04, 10:53    [601417]     Ответить | Цитировать Сообщить модератору
 Re: Запись в таблицу в транзации несмотря на откат транзакции.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
То rst.
У меня было сделано через ОЛЕ запись в файлы. То что ты предлогаешь по идее то же самое что в 0. То есть писать от другого соединения в таблицу.

Тогда другой вопрос интересно а можно в том же коннекте как нибудь исхитрится и записать в "обход" транзакции?
29 мар 04, 11:00    [601432]     Ответить | Цитировать Сообщить модератору
 Re: Запись в таблицу в транзации несмотря на откат транзакции.  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

declare @SomeTable table(Field1 ...)
begin tran
insert into Table1(field1) values (...)
insert into @SomeTable(Field1) select Field1 from Table1 where ...
rollback tran
select * from @SomeTable

или

create procedure DoLog @param 1 ... as ... select 1 as Result

SELECT a.*
FROM OPENROWSET('SQLOLEDB','seattle1';'manager';'MyPass',
'exec DoLog ....') AS a

хотя насчет этого не уверен
29 мар 04, 11:10    [601459]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить