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

SQL Server 2008 Enterprise в Windows Server 2008 Enterprise Cluster, который используется для поддержки 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". Как процесс случайно выбрасывает часть имени временной таблицы? Некоторые индексы успешно перестраиваются, поэтому временная таблица работает частично, и это не конкретная база данных или таблица, в которой происходит сбой задания. Любая помощь в этом очень ценится!

1 ответ

Решение

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

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

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

ура

Другие вопросы по тегам