用于支持SharePoint 2007和2010的Windows Server 2008 Enterprise Cluster上的SQL Server 2008 Enterprise。我们有一个每周索引重build作业,首先检查索引碎片,如果碎片大于10%,则重build索引,否则该指数是孤立的。
这个工作在过去的三次运行中都失败了,唯一报告的错误是:
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如何随机删除临时表名的一部分? 一些索引被成功重build,所以临时表部分工作,而不是作业失败的特定数据库或表。 任何帮助,非常感谢!
我想你正在喂临时表到游标,然后build立一个string作为命令执行? 如果是这样,我怀疑可能有一个表或名称中有一个空格的索引。 你可能想尝试
set @cmd = 'ALTER INDEX [' + @IndexName + '] ON [' + @TableName etc...
如果这不是你正在做的,你可能需要发布sp的定义。
干杯