Сбой восстановления хранимой процедуры индекса при вызове временной таблицы
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.
ура