powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка при редактировании записи
18 сообщений из 18, страница 1 из 1
Ошибка при редактировании записи
    #32017546
Fill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Помогите в таком вопросе: на новую машину установил MS SQL Server 2000, сделал attach базы, detach'нутой с другого MS SQL Server 2000 и получил непонятки...
На любую мою попытку редактировать запись, как программно, так и с помощью MMC, возвращается ошибка "80040E38 Row cannot be located for updating. Some values may have been changed since it was last read."

Из-за чего это может быть? И что делать?

С уважением, Сергей.
...
Рейтинг: 0 / 0
Ошибка при редактировании записи
    #32017549
Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может создать базу и поднять дамп
...
Рейтинг: 0 / 0
Ошибка при редактировании записи
    #32017554
Fill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не понял, что ты имеешь в виду?

BTW, вот только что попробовал отредактировать запись в базе Pubs -- все проходит без ошибок.

С уважением, Сергей.
...
Рейтинг: 0 / 0
Ошибка при редактировании записи
    #32017555
Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понял что ты инсталил другой сервер и пытаешься перенести туда базу,
попробуй
1. создать на новом сервере пустую базу с такими параметрами как на другой базе
2. снять дамп на первом сервере и поднять на втором
...
Рейтинг: 0 / 0
Ошибка при редактировании записи
    #32017566
Fill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотри на мой вопрос: я сделал attach базы, благополучно работающей на другом сервере. Или я что-то не то сделал?

С уважением , Сергей.
...
Рейтинг: 0 / 0
Ошибка при редактировании записи
    #32017569
Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я предлагаю переносить базу на другой сервер не путем Attach, а путем переноса дампа.
Т.Е. приатачить базу к старому серверу снять с него дамп и поднять на новый.И посмотреть.
...
Рейтинг: 0 / 0
Ошибка при редактировании записи
    #32017572
Fill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я понял. Попробую. Спасибо.

С уважением, Сергей.
...
Рейтинг: 0 / 0
Ошибка при редактировании записи
    #32017598
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Ошибка при редактировании записи
    #32017640
Fill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Александр, спасибо за ссылки на статьи, но, ни в одной из них нет решения моей проблемы. Дело в том, что база приattach'ена вполне нормально, т.е. данные видны, запросы работают, не работает только изменение записей (другого пока не обнаружил).

IMHO, придется скриптовать структуру всей базы, создавать новую и переносить данные туда. Может поможет. :о)

С уважением, Сергей.
...
Рейтинг: 0 / 0
Ошибка при редактировании записи
    #32017645
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть DBCC CHECKDB что-нибудь исправит или найдет причину ?
...
Рейтинг: 0 / 0
Ошибка при редактировании записи
    #32017646
Возможно, на табличке есть триггер, модифицирующий поля изменяемой записи. В этом случае клиентское средство не ожидает, что произошли с записью какие-то еще изменения, кроме тех, что он проделал сам, о чем и уведомляет.
В данной ситуации надо посмотреть следующие моменты, которые делают такую ошибку более вероятной:
1. Есть ли в табличке Primary Key. Отсутствие PK заставляет клиентское средство при апдейте перечислять все поля в секции WHERE. Кроме того, при отсутствии PK при UPDATE возможны изменения сразу несколько идентичных записей, а в этом случае будут многие глюки, из которых описанное, хотя и будет первым встретившимся, но далеко не главным глюком.
2. Если клиент - Delphi или CBuilder с использованием TQuery, то надо установить UpdateMode в upWhereKeyOnly (по-умолчанию там стоит upWhereAll), а с использованием TADO... надо задать свойство Resync для обновления всей строки после апдейта (точно не помню как, но можно найти в инете). С MMC тут ничего не поделаешь.
3. Если триггер заполняет поля журналиции в той строке, то ошибки можно избежать, если выборка не будет содержать эти журнальные поля в секции SELECT.
4. В любом случае, внимательный просмотр запросов в профайлере и повторение этих запросов в isqlw подскажет истинную причину. Сразу должен насторожить факт запроса на UPDATE, где в секции WHERE перечислены практически все поля, а не только первичный ключ.
...
Рейтинг: 0 / 0
Ошибка при редактировании записи
    #32017648
SergeK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно вопрос? А зачем так все усложнять?
Если есть бэкап базы, можно накатить его на другой сервер, только при накатывании указать желаемое имя базы (база в этот момент должна отсутсвовать).
...
Рейтинг: 0 / 0
Ошибка при редактировании записи
    #32017678
Fill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за участие в обсуждении.

Отвечаю всем по порядку. :о)

2Glory: DBCC CHECKDB ошибок не обнаружил.

2Глеб Уфимцев: триггера нет. Структура таблицы организуется следующим скриптом:

CREATE TABLE [dbo].[sp_Org] (
[OrgID] uniqueidentifier ROWGUIDCOL NOT NULL ,
[OrgDesc] [varchar] (250) COLLATE Cyrillic_General_CI_AI NOT NULL ,
[OrgIDTLevel] [uniqueidentifier] NULL ,
[NDSId] [uniqueidentifier] NULL
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[sp_Org] WITH NOCHECK ADD
CONSTRAINT [DF_sp_Org_OrgID] DEFAULT (newid()) FOR [OrgID],
CONSTRAINT [PK_sp_Org] PRIMARY KEY NONCLUSTERED
(
[OrgID]
) ON [PRIMARY]
GO

Переробовал много вариантов: и с PRIMARY KEY и без него, и CLUSTERED и NONCLUSTERED -- не помогает.

Клиент - Microsoft Management Console или Visual Basic 6.
Просмотр запросов в профайлере ничего криминального не выявил.

2SergeK: К сожалению, backup'а базы нет, есть только detach'нутая база.


С уважением, Сергей.
...
Рейтинг: 0 / 0
Ошибка при редактировании записи
    #32017680
Fill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опаньки, похоже у меня что-то с кодировками на новом сервере...

Сейчас более внимательно разглядывал сообщения в профайлере, и вот что увидел:

exec sp_executesql N'UPDATE "AllUsers".."sp_Org" SET "OrgDesc"=@P1 WHERE "OrgID"=@P2 AND "OrgDesc"=@P3 AND "OrgIDTopLevel" IS NULL AND "NDSId" IS NULL', N'@P1 varchar(250),@P2 uniqueidentifier,@P3 varchar(250)', '?? ???', '7578C5B8-1BCD-4036-B6F9-0657BEDA7897', '?????'

Вот там, где '?? ???' и '?????' должно быть 'Ка дры' и 'Кадры' (имеется ввиду Отдел кадров
.

Должно быть здесь собака и порылась...

Если не трудно, подскажите, где у меня может быть неправильно в настройках? А то меня мой начальник очень скоро начнет иметь...

С уважением, Сергей.
...
Рейтинг: 0 / 0
Ошибка при редактировании записи
    #32017681
SergeK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дурацкий вопрос. А не могло такое быть (хотя бы теоретически), что в момент detach'а существовали активные транзакции?

упс... поздно запостил...
...
Рейтинг: 0 / 0
Ошибка при редактировании записи
    #32017684
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно задать наивный вопрос? А если напрячься и посмотреть, чем же все-таки отличаются эти сервера?
Предположение 1. Может быть, один из них 7.0, а второй 2000? Или один - MSDE, а второй - SQL Server (а это все-таки разные вещи).
Предположение 2. На сервере1 были логины, в которые отображались учетные записи БД. А на втором сервере их нет.
Предположение 3. Файлы БД находились по одному пути, а приаттачили их по другому. Если используется несколько файлов БД, то в результате возникает труба. Нужно подправить пути.
Предположение 4. А учетная запись, под которой запускается сервер 2 имеет соответствующие права доступа к приаттаченным файлам (на уровне ОС)?
...
Рейтинг: 0 / 0
Ошибка при редактировании записи
    #32017689
Fill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Напрягаюсь.

1. Оба сервера - MS SQL Server 2000 + SP1. Ставились с одного и того же компакта.
2. Так как компьютер, на котором стоИт SQL-сервер - девелоперский, то все работы с базами идут то имени SA.
3. Файл БД - один. Я не могу гарантировать, что путь тот же самый, но IMHO в данном случае это не принципиально.
4. См. п.2.

Повторюсь: у меня единственное подозрение на Server Collation. Сейчас - Cyrillic_General_CI_AS. Что стояло на первом сервере - увы уже не узнать - он умер и отформатирован.

2All: Может ли Server Collation в данном случае так влиять на работу с записями?

ЗЫ: Жалко, если - да. Придется ставить второй instance или этот сносить и устанавливать заново.

С уважением, Сергей.
...
Рейтинг: 0 / 0
Ошибка при редактировании записи
    #32017690
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При переносе баз методом detach - attach Server Collation двух серверов должны быть одинаковы. Правда, если это условие не выполняется, сервер не делает attach.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка при редактировании записи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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