Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ошибки в базе (SQL 2000)  [new]
YValeriy
Member

Откуда:
Сообщений: 2
Добрый день!
Помогите "вылечить" базу SQL 2000

При проверке таблицы в базе вываливаются ошибки!

автор
use krk_v8
DBCC CHECKTABLE ('_Document89_VT1478');
GO

Server: Msg 8935, Level 16, State 1, Line 2
Table error: Object ID 1969442090, index ID 1. The previous link (1:7422460) on page (1:7696697) does not match the previous page (1:6166698) that the parent (1:7513588), slot 120 expects for this page.
Server: Msg 8935, Level 16, State 1, Line 2
Table error: Object ID 1969442090, index ID 1. The previous link (1:7905956) on page (1:7696698) does not match the previous page (1:7422460) that the parent (1:7513588), slot 118 expects for this page.
Server: Msg 8978, Level 16, State 1, Line 2
Table error: Object ID 1969442090, index ID 1. Page (1:7696698) is missing a reference from previous page (1:7905956). Possible chain linkage problem.
DBCC results for '_Document89_VT1478'.
There are 38506041 rows in 548038 pages for object '_Document89_VT1478'.
CHECKTABLE found 0 allocation errors and 3 consistency errors in table '_Document89_VT1478' (object ID 1969442090).
repair_rebuild is the minimum repair level for the errors found by DBCC CHECKTABLE (krk_v8.dbo._Document89_VT1478 ).


автор
CREATE UNIQUE CLUSTERED
INDEX [_Document89_VT1478_IntKeyInd] ON [dbo].[_Document89_VT1478] ([_Document89_IDRRef], [_KeyField])
WITH
DROP_EXISTING
ON [PRIMARY]

Server: Msg 1505, Level 16, State 1, Line 1
CREATE UNIQUE INDEX terminated because a duplicate key was found for index ID 1. Most significant primary key is 'type ad, len 16'.
The statement has been terminated.


автор
DBCC CHECKDB ('krk_v8', REPAIR_FAST)

Ошибки не исправляет.

DBCC CHECKDB ('krk_v8', REPAIR_REBUILD)

Ошибки не исправляет.

--DBCC CHECKDB ('krk_v8',repair_allow_data_loss);

Ошибки не исправляет.


Подскажите, что можно предпринять для исправления таблицы?

Модератор: Тема перенесена из форума "MySQL".


Сообщение было отредактировано: 24 янв 18, 18:11
24 янв 18, 12:25    [21133899]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в базе (SQL 2000)  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
YValeriy,

Создать новую, перенести целые данные из старой, грохнуть старую, переименовать новую в старую
25 янв 18, 11:46    [21137494]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в базе (SQL 2000)  [new]
YValeriy
Member

Откуда:
Сообщений: 2
WarAnt,

Была создана новая таблица

автор
USE [krk_v8]
GO

/****** Object: Table [dbo].[_Document89_VT1478N] Script Date: 01/25/2018 16:16:23 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[_Document89_VT1478N](
[_Document89_IDRRef] [binary](16) NOT NULL,
[_KeyField] [binary](4) NOT NULL,
[_LineNo1479] [numeric](5, 0) NOT NULL,
[_Fld1480RRef] [binary](16) NOT NULL,
[_Fld1481] [numeric](15, 2) NOT NULL,
[_Fld1482RRef] [binary](16) NOT NULL,
[_Fld1483RRef] [binary](16) NOT NULL,
[_Fld1484] [numeric](5, 0) NOT NULL,
[_Fld1485RRef] [binary](16) NOT NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO


Далее был перенос данных из поврежденной таблицы '_Document89_VT1478' в новую '_Document89_VT1478N'

автор
INSERT INTO _Document89_VT1478N SELECT * FROM _Document89_VT1478


После были добавлены индексы, как и у старой таблицы.

автор
CREATE UNIQUE CLUSTERED
INDEX [_Document89_VT1478_IntKeyInd] ON [dbo].[_Document89_VT1478N] ([_Document89_IDRRef], [_KeyField]) WITH
DROP_EXISTING
ON [PRIMARY]


Старая таблица '_Document89_VT1478' была удалена а новая '_Document89_VT1478N' переименована.

Тест базы ошибок не выявил.
28 янв 18, 16:00    [21145183]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в базе (SQL 2000)  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3459
YValeriy
WarAnt,

Была создана новая таблица

автор
USE [krk_v8]
GO

/****** Object: Table [dbo].[_Document89_VT1478N] Script Date: 01/25/2018 16:16:23 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[_Document89_VT1478N](
[_Document89_IDRRef] [binary](16) NOT NULL,
[_KeyField] [binary](4) NOT NULL,
[_LineNo1479] [numeric](5, 0) NOT NULL,
[_Fld1480RRef] [binary](16) NOT NULL,
[_Fld1481] [numeric](15, 2) NOT NULL,
[_Fld1482RRef] [binary](16) NOT NULL,
[_Fld1483RRef] [binary](16) NOT NULL,
[_Fld1484] [numeric](5, 0) NOT NULL,
[_Fld1485RRef] [binary](16) NOT NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO


Далее был перенос данных из поврежденной таблицы '_Document89_VT1478' в новую '_Document89_VT1478N'

автор
INSERT INTO _Document89_VT1478N SELECT * FROM _Document89_VT1478


После были добавлены индексы, как и у старой таблицы.

автор
CREATE UNIQUE CLUSTERED
INDEX [_Document89_VT1478_IntKeyInd] ON [dbo].[_Document89_VT1478N] ([_Document89_IDRRef], [_KeyField]) WITH
DROP_EXISTING
ON [PRIMARY]


Старая таблица '_Document89_VT1478' была удалена а новая '_Document89_VT1478N' переименована.

Тест базы ошибок не выявил.



т.е. новую таблицу создал в той же базе ?
28 янв 18, 16:49    [21145244]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить