Problema de Sysobjects no SQL 2000

Problema de Sysobjects no SQL 2000

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.)

informação relacionada