调用临时表时索引重建存储过程失败

调用临时表时索引重建存储过程失败

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 定义。

干杯

相关内容