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.
Ура