Назад | Перейти на главную страницу

SQL Server 2008 - изменение приращения идентификатора первичного ключа в таблице

Я изменяю приращение (делая его 2 вместо 1) в идентификаторе столбца. SQL Server дает мне следующую ошибку при внесении изменений в БД. Я искал в Интернете, но некоторые люди говорят, что это может быть проблема с оборудованием, но я пробовал то же самое на другом компьютере, но это дает мне ту же ошибку. Ниже приводится ошибка ...

Невозможно изменить таблицу. SQL Server обнаружил ошибку ввода-вывода на основе логической согласованности: неверная контрольная сумма (ожидаемая: 0x0c413292; фактическая: 0x0c413282). Это произошло во время чтения страницы (1: 21513) в базе данных с идентификатором 7 по смещению 0x0000000a812000 в файле 'C: \ Program Files \ Microsoft SQL Server \ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ TimeCommerceV5.mdf'. Дополнительные сообщения в журнале ошибок SQL Server или журнале системных событий могут содержать более подробную информацию. Это серьезная ошибка, угрожающая целостности базы данных, и ее необходимо немедленно исправить. Выполните полную проверку целостности базы данных (DBCC CHECKDB). Эта ошибка может быть вызвана многими факторами; Дополнительные сведения см. в электронной документации по SQL Server.

У вас есть хорошая резервная копия? Возможно, пришло время его использовать. Я сомневаюсь, что это имеет какое-либо отношение к изменению приращения идентификатора, а скорее вызвано попыткой скопировать / записать данные на / с плохой страницы. Что значит DBCC CHECKDB Уступать? Как насчет:

DBCC PAGE(7, 1, 21513, 3);

(Перемещено из комментариев) Проголосовали за переход на serverfault, я считаю, что ошибка, которую вы получаете, и ваш немедленный шаг - не паниковать и немедленно создавать резервную копию базы данных. Затем вы можете начать поиск dbcc checkdb и посмотреть, что было повреждено.

Я не могу не подчеркнуть, что 'не паникуйте' и 'немедленно сделать резервную копию базы данных' должны быть ваши следующие два шага.

Как только это будет сделано, запустите

DBCC CHECKDB (YOURDBNAME) WITH ALL_ERRORMSGS, NO_INFOMSGS

И вернитесь к нам / serverfault с выводом, если вам повезет, это просто некластеризованный индекс, который поврежден.