Instalei o SQL Server 2012 RC0 em meu laptop recentemente e estava tentando uma demonstração que ilustra como o banco de dados reduzido causará fragmentação. Criei uma tabela, um índice clusterizado na coluna de identidade e inseri alguns registros e, em seguida, emiti o seguinte para verificar a fragmentação:
select avg_fragmentation_in_percent from sys.dm_db_index_physical_stats(DB_ID('databasename'),
OBJECT_ID('tablename'), 1, NULL, 'limited')
Esta é a mensagem de erro que recebo:
Could not find table or object ID 2139154666. Check system catalog.
Fiz um select * de sysobjects e o objeto existe com esse objectID. Por que o SQL Server pensa que não existe? O que estou fazendo errado?
Você está no contexto de banco de dados errado.
Tentar:
Alternativamente, você pode simplesmente lançar um
USE Databasename
na primeira linha.
Suponho que esteja executando no contexto de
master
ou algo semelhante, que não terá oOBJECTID
que você está procurando.