Помогите исправить ошибки в базе 1С SQL

1. YA_1547579978 24.10.22 16:37 Сейчас в теме
Здравствуйте, подскажите как исправить ошибки в базе SQL? После обновления база нормально не открылась. Через конфигуратор тестирование и исправление прерывается. Проверил базу на ошибки в SQL и попытался исправить, они не исправляются. Проверял так:

Use MyDataBase
GO
DBCC CHECKDB
GO
-------------------------
Use MyDataBase
GO
ALT ER DATABASE MyDataBase SET SINGLE_USER
GO
DBCC CHECKDB('MyDataBase', REPAIR_REBUILD)
GO

А вот список ошибок:
Msg 8952, Level 16, State 1, Line 3
Ошибка в таблице: таблица "sys.sysidxstats" (идентификатор 54). Строке индекса "nc" (идентификатор 2) не соответствует ни одна строка данных. Возможно, существуют лишние или недопустимые ключи для:
Msg 8956, Level 16, State 1, Line 3
Строка индекса (1:109394:49) со значениями (name = '_WA_Sys_00000007_623E9779' and id = 1648269177 and indid = 5), указывающими на строку данных, определяемую по (id = 1648269177 and indid = 5).
Msg 8952, Level 16, State 1, Line 3
Ошибка в таблице: таблица "sys.sysidxstats" (идентификатор 54). Строке индекса "nc" (идентификатор 2) не соответствует ни одна строка данных. Возможно, существуют лишние или недопустимые ключи для:
Msg 8956, Level 16, State 1, Line 3
Строка индекса (1:50406:31) со значениями (name = '_WA_Sys_00000008_623E9779' and id = 1648269177 and indid = 4), указывающими на строку данных, определяемую по (id = 1648269177 and indid = 4).
Msg 8952, Level 16, State 1, Line 3
Ошибка в таблице: таблица "sys.sysidxstats" (идентификатор 54). Строке индекса "nc" (идентификатор 2) не соответствует ни одна строка данных. Возможно, существуют лишние или недопустимые ключи для:
Msg 8956, Level 16, State 1, Line 3
Строка индекса (1:54549:16) со значениями (name = '_WA_Sys_00000005_623E9779' and id = 1648269177 and indid = 6), указывающими на строку данных, определяемую по (id = 1648269177 and indid = 6).
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. kuzev 48 24.10.22 16:47 Сейчас в теме
3. booksfill 24.10.22 17:43 Сейчас в теме
Попробуйте на тестовой копии:
Выполняем:
use ВАША_БАЗА
GO
SEL ECT stat.name AS 'Statistics',
 OBJECT_NAME(stat.object_id) AS 'Object',
 COL_NAME(scol.object_id, scol.column_id) AS 'Column'
FR OM sys.stats AS stat (NOLOCK) Join sys.stats_columns AS scol (NOLOCK)
 ON stat.stats_id = scol.stats_id AND stat.object_id = scol.object_id
 INNER JOIN sys.tables AS tab (NOLOCK) on tab.object_id = stat.object_id
WHERE stat.name like '_WA%'
ORDER BY stat.name
Показать


Пробуем найти ваши _WA_Sys_00000005_623E9779
Если повезет, то найдем что-то типа
_WA_Sys_00000001_11335496 _InfoRgChngR18017NG _NodeTRef

Возможно уже на этом этапе станет понятно, что делать - например, возвернуть в базу колонку и переиндексировать соотв-ю таблицу (последнее шаманство вряд-ли поможет, но...).

Если не помогло, то
1. отключаем AUTO_CREATE_STATISTICS option

2. удаляем автосозданные статистики, т.к. _WA_Sys_ - это они самые

Вот код для создания такого скрипта, я его НЕ проверял:
SELECT DISTINCT 'DROP STATISTICS '
+ QUOTENAME(SCHEMA_NAME(ob.Schema_id)) + '.'
+ QUOTENAME(OBJECT_NAME(s.object_id)) + '.' +
QUOTENAME(s.name) DropStatisticsStatement
FR OM sys.stats s
INNER JOIN sys.Objects ob ON ob.Object_id = s.object_id
WH ERE SCHEMA_NAME(ob.Schema_id) <> 'sys'
AND Auto_Created = 1
Показать


Проверяем, ежели заработало, то обратно включаем AUTO_CREATE_STATISTICS option
4. YA_1547579978 25.10.22 13:54 Сейчас в теме
Попробовал, пишет: Обнаружено возможное повреждение индекса. Запустите DBCC CHECKDB. Запустил, список ошибок тот же.
5. Torin 840 25.10.22 14:00 Сейчас в теме
6. YA_1547579978 25.10.22 14:21 Сейчас в теме
Пробовал, те же ошибки пишет.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот