
Tendo um problema com uma tabela específica. Estava usando o script de Kimberly Tripp para reconstruir índices com base no nível de fragmentação. O trabalho falhou com este erro:
Msg 2501, 16 de setembro: Não foi possível encontrar uma tabela ou objeto chamado 'CMS_InfoObjects6'. Verifique os objetos do sistema. [SQLSTATE42S02]
Verifiquei sysobjects e vi o nome da tabela listado. selecione object_name (2137058649) retorna CMS_InfoObjects6. select object_id('CMS_InfoObjects6') retorna nulo. select object_id(object_name(2137058649)) também retorna nulo.
Posso ver a tabela no EM e selecionar * nela no controle de qualidade ao usar um nome totalmente qualificado (o proprietário não é dbo).
dbcc checkdb não retorna erros.
declare @nome varchar(500) set @name = object_name(2137058649) tabela de verificação dbcc (@name)
retorna "Não foi possível encontrar uma tabela ou objeto chamado 'CMS_InfoObjects6'. Verifique sysobjects."
Estou confuso.
Responder1
Na sua variável, você não está incluindo o esquema. Se o objeto não estiver no esquema padrão (como neste caso, onde você disse que não era dbo), será necessário passar o nome totalmente qualificado para DBCC CHECKTABLE. Confira os scripts de exemplo na parte inferior da página Livros Online para esse comando:
http://msdn.microsoft.com/en-us/library/ms174338.aspx
Você precisará modificar o script de Kimberly para incluir o esquema. (É engraçado, ela está dando uma aula na minha frente enquanto conversamos, hahaha.)