Как посмотреть в SQL Server что случилось

User avatar
RedHot
Уже с Приветом
Posts: 347
Joined: 11 May 2001 09:01
Location: NJ

Как посмотреть в SQL Server что случилось

Post by RedHot »

Часов 12 назад усер из приложения сделал 4 трансации в течении минут 20
Один трансации вызов ето 3 последовательних ИНСЕРТ (без BEGIN TRANSACTION, simple 3 INSERTs in a row ) в 3 таблицы ( А, Б, Ц). Если происходит ошибка после любого ИНСЕРТ то ето пишется в лог приложения

Что имею, записи в А и Б есть для свех 4 трансаций. А в Ц только для трансации что была второй. лог приложения пустой

Специалист взял отгул. Так меня напрягаут. А у меня с SQl server не очень.
Может кто поскажет куда можно погладеть

Thanks in advance
Last edited by RedHot on 18 Mar 2004 18:23, edited 1 time in total.
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Мало что понятно
1. Была ли одна обзая транзакция (зависит от SET IMPLICIT_TRANSACTIONS)
2. ЧТо имеется в виду под 'пишется в log' ? У аппликации есть какой то свой лог ? Это файл или таблица ?
3. 'Сделал транзакции' в Q.A. или в аппликации ? СОбственно даже в транзакции аппликация может наплевать на ошибку insert, и сделать после этого не rollback а commit
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
RedHot
Уже с Приветом
Posts: 347
Joined: 11 May 2001 09:01
Location: NJ

Post by RedHot »

Dmitry67 wrote:Мало что понятно
1. Была ли одна обзая транзакция (зависит от SET IMPLICIT_TRANSACTIONS)

Each INSERT is one TRANSACTION. I know it is not good , but ...
Dmitry67 wrote:2. ЧТо имеется в виду под 'пишется в log' ? У аппликации есть какой то свой лог ? Это файл или таблица ?

Application log. Table into same database where target tables are

Dmitry67 wrote:3. 'Сделал транзакции' в Q.A. или в аппликации ? СОбственно даже в транзакции аппликация может наплевать на ошибку insert, и сделать после этого не rollback а commit

All calls were made from application and application checks if error code returned
and then writes log if any

Sorry about English
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Если разбираться постфактум то поезд ушел
Если ошибка воспроизводится то надо смотреть какие операторы выпляет пограмма в Profiler
Если лог таблица, то хотелось бы верить что сообщения об ошибках туда вставляют в ДРУГОЙ коннекции или хотя бы после ROLLBACK в основной :) но думаю в партии не дураки сидят (c)
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
RedHot
Уже с Приветом
Posts: 347
Joined: 11 May 2001 09:01
Location: NJ

Post by RedHot »

Thanks for respones
SQL Server is not a good database :) Even Sybase has database log wich can be translated into SQL statements :umnik1:

By other hand nobody, who calls yourself a programmer, does such thing like couple logocaly related opereations over database without combaining them into one transaction
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

RedHot wrote:1
SQL Server is not a good database :) Even Sybase has database log wich can be translated into SQL statements :umnik1:

2
By other hand nobody, who calls yourself a programmer, does such thing like couple logocaly related opereations over database without combaining them into one transaction


1 MS SQL log is a binary one
But you can trace everything using SQL profiler
The problem is, you have to start it BEFORE the event, so, when something like that happens it is already too late

2 ... unless... unless it is an error log table ! THis is the only exception
In Oracle, BTW, you can use so called 'autonomous transactions'
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014

Return to “Вопросы и новости IT”