Проблема с Sysobjects в SQL 2000

Проблема с Sysobjects в SQL 2000

Возникла проблема с определенной таблицей. Использовал скрипт Кимберли Трипп для перестроения индексов на основе уровня фрагментации. Задание завершилось с ошибкой:

Msg 2501, Sev 16: Не удалось найти таблицу или объект с именем 'CMS_InfoObjects6'. Проверьте sysobjects. [SQLSTATE 42S02]

Я проверил sysobjects и увидел указанное имя таблицы. select object_name(2137058649) возвращает CMS_InfoObjects6. select object_id('CMS_InfoObjects6') возвращает null. select object_id(object_name(2137058649)) также возвращает null.

Я вижу таблицу в EM и могу выбрать * из нее в QA при использовании полного имени (владелец не dbo).

dbcc checkdb не возвращает ошибок.

объявить @name varchar(500) установить @name = object_name(2137058649) dbcc checktable (@name)

возвращает «Не удалось найти таблицу или объект с именем 'CMS_InfoObjects6'. Проверьте sysobjects».

Я в замешательстве.

решение1

В вашей переменной вы не включаете схему. Если объект не находится в схеме по умолчанию (как в этом случае, когда вы сказали, что это не dbo), то вам нужно передать полное имя в DBCC CHECKTABLE. Ознакомьтесь с примерами скриптов в нижней части страницы Books Online для этой команды:

http://msdn.microsoft.com/en-us/library/ms174338.aspx

Вам нужно будет изменить сценарий Кимберли, чтобы включить схему. (Забавно, она ведет занятие прямо передо мной, пока мы разговариваем, хахаха.)

Связанный контент