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

Сбой хранимой процедуры восстановления индекса при вызове временной таблицы

SQL Server 2008 Enterprise в кластере Windows Server 2008 Enterprise, который используется для поддержки SharePoint 2007 и 2010. У нас есть еженедельное задание по перестроению индекса, которое сначала проверяет фрагментацию индекса, и если фрагментация превышает 10%, то индексы перестраиваются, в противном случае индекс остается в покое.

Задание завершалось ошибкой в ​​течение последних трех запусков, сообщается только об ошибке:

Indexing in Database: SPSearchDBName [SQLSTATE 01000]
___________________________________ [SQLSTATE 01000]
Re indexing for tables not needed in this Database. Fragmentation levels ok. [SQLSTATE     01000]
Msg 208, Sev 16, State 1, Line 2 : Invalid object name '#work_to'. [SQLSTATE 42S02]
Msg 0, Sev 16, State 1, Line 230 :  [SQLSTATE 01000]

Недопустимое имя объекта - это просто фрагмент допустимого имени объекта "#work_to_do". Как процесс случайно удалит часть имени временной таблицы? Некоторые индексы успешно перестраиваются, поэтому временная таблица работает частично, и это не конкретная база данных или таблица, для которой происходит сбой задания. Любая помощь по этому поводу очень ценится!

Я предполагаю, что вы вводите временную таблицу в курсор, а затем создаете строку для выполнения в качестве команды? Если это так, я подозреваю, что это может быть таблица или индекс с пробелом в имени. Вы можете попробовать

set @cmd = 'ALTER INDEX [' + @IndexName + '] ON [' + @TableName etc...

Если это не то, что вы делаете, вам может потребоваться опубликовать определение sp.

Ура