Windows Server 2008 Enterprise Cluster 上的 SQL 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”的一部分。proc 如何随机删除部分临时表名称?一些索引已成功重建,因此临时表部分工作正常,并且它不是作业失败的特定数据库或表。任何帮助都非常感谢!
答案1
我猜你是将临时表输入到游标中,然后构建一个字符串作为命令执行?如果是这样,我怀疑可能有一个表或索引的名称中有空格。你可能想试试
set @cmd = 'ALTER INDEX [' + @IndexName + '] ON [' + @TableName etc...
如果这不是您要做的,您可能需要发布 sp 定义。
干杯