Часов 12 назад усер из приложения сделал 4 трансации в течении минут 20
Один трансации вызов ето 3 последовательних ИНСЕРТ (без BEGIN TRANSACTION, simple 3 INSERTs in a row ) в 3 таблицы ( А, Б, Ц). Если происходит ошибка после любого ИНСЕРТ то ето пишется в лог приложения
Что имею, записи в А и Б есть для свех 4 трансаций. А в Ц только для трансации что была второй. лог приложения пустой
Специалист взял отгул. Так меня напрягаут. А у меня с SQl server не очень.
Может кто поскажет куда можно погладеть
Thanks in advance
Как посмотреть в SQL Server что случилось
-
- Уже с Приветом
- Posts: 347
- Joined: 11 May 2001 09:01
- Location: NJ
Как посмотреть в SQL Server что случилось
Last edited by RedHot on 18 Mar 2004 18:23, edited 1 time in total.
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Мало что понятно
1. Была ли одна обзая транзакция (зависит от SET IMPLICIT_TRANSACTIONS)
2. ЧТо имеется в виду под 'пишется в log' ? У аппликации есть какой то свой лог ? Это файл или таблица ?
3. 'Сделал транзакции' в Q.A. или в аппликации ? СОбственно даже в транзакции аппликация может наплевать на ошибку insert, и сделать после этого не rollback а commit
1. Была ли одна обзая транзакция (зависит от SET IMPLICIT_TRANSACTIONS)
2. ЧТо имеется в виду под 'пишется в log' ? У аппликации есть какой то свой лог ? Это файл или таблица ?
3. 'Сделал транзакции' в Q.A. или в аппликации ? СОбственно даже в транзакции аппликация может наплевать на ошибку insert, и сделать после этого не rollback а commit
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 347
- Joined: 11 May 2001 09:01
- Location: NJ
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
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Если разбираться постфактум то поезд ушел
Если ошибка воспроизводится то надо смотреть какие операторы выпляет пограмма в Profiler
Если лог таблица, то хотелось бы верить что сообщения об ошибках туда вставляют в ДРУГОЙ коннекции или хотя бы после ROLLBACK в основной но думаю в партии не дураки сидят (c)
Если ошибка воспроизводится то надо смотреть какие операторы выпляет пограмма в Profiler
Если лог таблица, то хотелось бы верить что сообщения об ошибках туда вставляют в ДРУГОЙ коннекции или хотя бы после ROLLBACK в основной но думаю в партии не дураки сидят (c)
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 347
- Joined: 11 May 2001 09:01
- Location: NJ
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
RedHot wrote:1
SQL Server is not a good database Even Sybase has database log wich can be translated into SQL statements
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