Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
Sidorov Anton
Member

Откуда: Ульяновск
Сообщений: 58
Из приложения Access происходит апдейт строки. В одной БД все ок, в другой на том же сервере ошибка.

Дамп приложил.
Сервер:
Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86) Nov 24 2008 13:01:59 Copyright (c) 1988-2005 Microsoft Corporation Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

Подскажите в каком направлении смотреть. По дампу ничего понять нимогу.

С уважением, Сидоров Антон.

К сообщению приложен файл (SQLDump0003.zip - 7Kb) cкачать
25 авг 09, 11:53    [7576405]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Какие урвони совместимости у этих двух баз?
25 авг 09, 11:55    [7576419]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
Sidorov Anton
Member

Откуда: Ульяновск
Сообщений: 58
Обе в режиме совместимости 90. До этого базы были на сервере 2000. Переход сделали недавно на 2005 сервер и режим совместимости поменяли.

С уважением, Сидоров Антон.
25 авг 09, 12:22    [7576562]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
для начала
выловите на обоих серверах sql запросы, потом в SSMS повторите их, посмотрите как они работают...
25 авг 09, 12:23    [7576570]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Что за апдейт? Есть ли триггер?
25 авг 09, 12:51    [7576731]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
Sidorov Anton
Member

Откуда: Ульяновск
Сообщений: 58
pkarklin,
вообще Access сам апдейтит. Надо через профайлер ловить апдейт тогда...

Я меняю значение колонки КодОценка, а на таблицу есть тригер на апдейт этой колонки:

IF UPDATE(КодОценка)
BEGIN
UPDATE Учетная_карточка_студента
SET ПользовательОценка = system_user
FROM inserted AS S, Учетная_карточка_студента
WHERE
Учетная_карточка_студента.ИНС = S.ИНС
and
Учетная_карточка_студента.КодДисциплина = S.КодДисциплина
END
25 авг 09, 12:57    [7576766]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Sidorov Anton,

Попробуйте переписать запрос, унеся объединение из WHERE во FROM.
25 авг 09, 12:59    [7576776]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
Sidorov Anton
Member

Откуда: Ульяновск
Сообщений: 58
pkarklin
Sidorov Anton,

Попробуйте переписать запрос, унеся объединение из WHERE во FROM.


Вообще тригеры отключил не помогло. Таже ошибка. Через профайлер придется запрос ловить.
25 авг 09, 14:55    [7577563]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
Sidorov Anton
Member

Откуда: Ульяновск
Сообщений: 58
вот такая команда идет на сервер:

exec sp_executesql N'UPDATE "acoo2hs".."Учетная_карточка_студента" SET "КодОценка"=@P1 WHERE "ИНС"=@P2 AND "КодДисциплина"=@P3 AND "ПлЦена"=@P4 AND "ФактОпл" IS NULL AND "ДатаОпл" IS NULL AND "КодСостИзуч" IS NULL AND "КодВременнаяГруппа" IS NULL AND "КодОценка"=@P5 AND "ДатаИзучения"=@P6 AND "НомДок" IS NULL AND "ДопСогл" IS NULL AND "ДатаДопСогл" IS NULL AND "ОтчПартн" IS NULL AND "Активно"=@P7 AND "ПользовательОценка"=@P8 AND "ИНТ" IS NULL',N'@P1 int,@P2 int,@P3 int,@P4 int,@P5 int,@P6 datetime,@P7 bit,@P8 varchar(9)',3,11223,338,0,6,'2008-02-15 00:00:00:000',1,'IDO\anton'

Когда через Managment запуская - все ок.
25 авг 09, 15:20    [7577794]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Sidorov Anton
pkarklin
Sidorov Anton,

Попробуйте переписать запрос, унеся объединение из WHERE во FROM.


Вообще тригеры отключил не помогло. Таже ошибка. Через профайлер придется запрос ловить.


Ловите. Так же не помешало бы dbcc checkdb запустить навсякий.
25 авг 09, 15:20    [7577803]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Sidorov Anton,

Т.е. Вы запрос, отовленный профайлером запускаетие из студии и он отрабатывает без ошибки?
25 авг 09, 15:22    [7577818]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
Sidorov Anton
Member

Откуда: Ульяновск
Сообщений: 58
pkarklin
Sidorov Anton,

Т.е. Вы запрос, отовленный профайлером запускаетие из студии и он отрабатывает без ошибки?


Да. checkdb запускал. было 2 ошибки в 2 таблицах. запустил UPDATEUSAGE, ошибок не стало.

Но ошибка все равно возникает. Запустил на другом сервере вообще SQL 2005 SP3 тоже самое. Может есть еще обновления после SP3?
25 авг 09, 15:39    [7577946]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Sidorov Anton
pkarklin
Sidorov Anton,

Т.е. Вы запрос, отовленный профайлером запускаетие из студии и он отрабатывает без ошибки?


Да.


Сравните значения опций SET при коннекте из Access и из студии. В профайлере в событии ExisitingConnection или sys.dm_exec_sessions.
25 авг 09, 15:41    [7577964]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
Sidorov Anton
Member

Откуда: Ульяновск
Сообщений: 58
pkarklin
Sidorov Anton
pkarklin
Sidorov Anton,

Т.е. Вы запрос, отовленный профайлером запускаетие из студии и он отрабатывает без ошибки?


Да.


Сравните значения опций SET при коннекте из Access и из студии. В профайлере в событии ExisitingConnection или sys.dm_exec_sessions.


Access:
SET NO_BROWSETABLE ON

Студия:
добавил SET DATEFORMAT ymd, а то вот такое сообщение выходит: Сообщение 8114, уровень 16, состояние 5, строка 0
Ошибка при преобразовании типа данных varchar к datetime.
25 авг 09, 15:53    [7578039]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Sidorov Anton
Access:
SET NO_BROWSETABLE ON


чТО будет, если перед апдейтом в том же запросе выполнить OFF?


Sidorov Anton
Студия:
добавил SET DATEFORMAT ymd, а то вот такое сообщение выходит: Сообщение 8114, уровень 16, состояние 5, строка 0
Ошибка при преобразовании типа данных varchar к datetime.


Этот SET не трогайте.
25 авг 09, 15:57    [7578063]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
Sidorov Anton
Member

Откуда: Ульяновск
Сообщений: 58
pkarklin,

что то ничего не помогает. засада какая та. все равно ошибки нет в студии
25 авг 09, 16:55    [7578528]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Sidorov Anton
pkarklin,

что то ничего не помогает. засада какая та. все равно ошибки нет в студии


Причем тут студия, если я просил выполнить запрос с установленой опцией SET NO_BROWSETABLE OFF из Access?!
25 авг 09, 16:57    [7578541]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
Sidorov Anton
Member

Откуда: Ульяновск
Сообщений: 58
pkarklin
Sidorov Anton
pkarklin,

что то ничего не помогает. засада какая та. все равно ошибки нет в студии


Причем тут студия, если я просил выполнить запрос с установленой опцией SET NO_BROWSETABLE OFF из Access?!


:) ну так Access сам SET NO_BROWSETABLE ON шлет перед командой. Я SET из Access никаких не делаю.
25 авг 09, 16:58    [7578556]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Sidorov Anton
:) ну так Access сам SET NO_BROWSETABLE ON шлет перед командой. Я SET из Access никаких не делаю.


А Вы в "команду" поставьте первой инструкцией SET NO_BROWSETABLE OFF.
25 авг 09, 17:01    [7578579]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Какие еще регламентные работы делали\не делали с бд, на которой не идет запрос? Реиндексация, апдейт статистики?
25 авг 09, 17:02    [7578589]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
Sidorov Anton
Member

Откуда: Ульяновск
Сообщений: 58
pkarklin
Sidorov Anton
:) ну так Access сам SET NO_BROWSETABLE ON шлет перед командой. Я SET из Access никаких не делаю.


А Вы в "команду" поставьте первой инструкцией SET NO_BROWSETABLE OFF.
Я команду сам не строю. Ее Access строит, а я ее в профайлере уже вижу. Или я что то уже не понимаю? вечереетт..
25 авг 09, 17:03    [7578590]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Sidorov Anton
Я команду сам не строю. Ее Access строит...


Жаль...
25 авг 09, 17:04    [7578593]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Вы можете из Access отправить запрос к серверу в том виде, в каком Вы его отловили профайлером сначала с ON, а потом в OFF?
25 авг 09, 17:05    [7578603]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
Sidorov Anton
Member

Откуда: Ульяновск
Сообщений: 58
pkarklin
Какие еще регламентные работы делали\не делали с бд, на которой не идет запрос? Реиндексация, апдейт статистики?


После перехода на 2005 сделали check и update statistici. статистика вообще каждый день обновляется ночью.
25 авг 09, 17:12    [7578644]     Ответить | Цитировать Сообщить модератору
 Re: При обновлении таблицы в одной БД все ок, в другой ошибка на сервере 17310  [new]
Sidorov Anton
Member

Откуда: Ульяновск
Сообщений: 58
pkarklin
Вы можете из Access отправить запрос к серверу в том виде, в каком Вы его отловили профайлером сначала с ON, а потом в OFF?


Послал команды:

SET NO_BROWSETABLE ON;SET DATEFORMAT ymd;exec sp_executesql N'UPDATE "acoo2hs".."Учетная_карточка_студента" SET "КодОценка"=@P1 WHERE "ИНС"=@P2 AND "КодДисциплина"=@P3 AND "ПлЦена"=@P4 AND "ФактОпл" IS NULL AND "ДатаОпл" IS NULL AND "КодСостИзуч" IS NULL AND "КодВременнаяГруппа" IS NULL AND "КодОценка"=@P5 AND "ДатаИзучения"=@P6 AND "НомДок" IS NULL AND "ДопСогл" IS NULL AND "ДатаДопСогл" IS NULL AND "ОтчПартн" IS NULL AND "Активно"=@P7 AND "ПользовательОценка"=@P8 AND "ИНТ" IS NULL',N'@P1 int,@P2 int,@P3 int,@P4 int,@P5 int,@P6 datetime,@P7 bit,@P8 varchar(9)',3,11223,338,0,6,'2008-02-15 00:00:00:000',1,'IDO\anton'

SET NO_BROWSETABLE OFF;SET DATEFORMAT ymd;exec sp_executesql N'UPDATE "acoo2hs".."Учетная_карточка_студента" SET "КодОценка"=@P1 WHERE "ИНС"=@P2 AND "КодДисциплина"=@P3 AND "ПлЦена"=@P4 AND "ФактОпл" IS NULL AND "ДатаОпл" IS NULL AND "КодСостИзуч" IS NULL AND "КодВременнаяГруппа" IS NULL AND "КодОценка"=@P5 AND "ДатаИзучения"=@P6 AND "НомДок" IS NULL AND "ДопСогл" IS NULL AND "ДатаДопСогл" IS NULL AND "ОтчПартн" IS NULL AND "Активно"=@P7 AND "ПользовательОценка"=@P8 AND "ИНТ" IS NULL',N'@P1 int,@P2 int,@P3 int,@P4 int,@P5 int,@P6 datetime,@P7 bit,@P8 varchar(9)',3,11223,338,0,6,'2008-02-15 00:00:00:000',1,'IDO\anton'

Все ок. Ошибок на сервере нету.
Для чистоты эксперимента приведу во вложении то что профайлер ловит после обновления столбца.

К сообщению приложен файл (trace.zip - 20Kb) cкачать
25 авг 09, 17:31    [7578757]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить