Преминаване към основното съдържание
Поддръжка
Влизане с Microsoft
Влезте или създайте акаунт.
Здравейте,
Изберете друг акаунт.
Имате няколко акаунта
Изберете акаунта, с който искате да влезете.

Симптоми

Обмислете следния сценарий:

  • Имате две таблици с разделители в Microsoft SQL Server 2014 и преградите на първата таблица се съпоставят с различни файлове и filegroups с помощта на една и съща схема и функция за деление.

  • Можете да смените един от тези дялове към втората таблица, а след това да съкратите втората таблица.

  • Можете да пускате файлове и filegroups, които са нанесени към разменения дял.

  • Изпълнявате команда SELECT във втората таблица.

В този случай получавате следното съобщение за грешка:

MSG 606, ниво 21, състояние 1Metadata несъответствие. ИД на Filegroup<Filegroup ид> зададено за таблица <име на таблица> не съществува. Изпълнение на DBCC CHECKDB или CHECKCATALOG.

Когато изпълнявате DBCC CHECKDB/CHECKTABLE, получавате следното съобщение за грешка:

Не можете да обработвате индекс <IndexName> на таблица <TableName> тъй като filegroup (filegroup ИД <FileGroupNumber>) е невалиден.

Решение

Първоначално проблемът е коригиран в следните кумулативни актуализации на SQL Server:

Всяка нова сборна актуализация за SQL Server съдържа всички поправки и всички корекции на защитата, които са били включени в предишната сборна актуализация. Препоръчваме ви да изтеглите и инсталирате последните сборни актуализации за SQL Server:

Забележка Тази корекция предотвратява само бъдещи случаи на този проблем. Ако вече имате този проблем, експортирайте данните си в нова база данни, без да се налага да въвеждате повреда в метаданните. За да направите това, изпълнете следните стъпки:

  1. За да определите дали даден дял има невалиден filegroup, изпълнете следната заявка, за да видите дали връща резултат:

    SELECT * FROM sys.allocation_units AS au WHERE au.data_space_id NOT IN (SELECT data_space_id FROM sys.filegroups)
  2. Направете таблицата с повредата на метаданните отново видима. Ако заявката от стъпка 1 връща резултат, дялът с повредени метаданни не ви позволява да преглеждате (изберете * от) всички редове в таблицата. За да заобиколите този проблем, премахнете този грешен дял.Забележка Лошият дял трябва да е празен. В противен случай файловете и filegroup, с които е бил, не са могли да бъдат отхвърлени или изтрити. За да направите това, пренесете този дял в друга таблица, която използва същата схема за разделяне. Тази таблица може да бъде само сляпа таблица. Използвайте container_id от заявката в стъпка 1 и я съгласувате с partition_id от системни. прегради. (Уверете се, че сте отбелязали partition_number.) Използвайте partition_number, за да извършите смяна на ДЯЛА за таблица от таблицата, която е невиждана за таблицата на фиктивните. Таблицата на фиктивните трябва да има един и същ набор от колони и да използва същата схема за деление. Вашата заявка за намиране на несъгласувания дял може да прилича на следното:

    SELECT au.container_id, au.data_space_id, p.partition_number FROM sys.partitions AS p JOIN sys.allocation_units AS au ON p.partition_id = au.container_id LEFT JOIN sys.filegroups AS fgs ON fgs.data_space_id = au.data_space_id WHERE object_id = OBJECT_ID('MyTableName') AND fgs.data_space_id IS NULL;
  3. Копирайте данните от непреглежданата по-рано таблица в новата база данни.

Състоянието

Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.

Беше ли полезна тази информация?

Доколко сте доволни от качеството на езика?
Какво е повлияло на вашия потребителски опит?
Като натиснете „Подаване“, вашата обратна връзка ще се използва за подобряване на продуктите и услугите на Microsoft. Вашият ИТ администратор ще може да събира тези данни. Декларация за поверителност.

Благодарим ви за обратната връзка!

×