我最近在我的笔记本电脑上安装了 SQL Server 2012 RC0,我正在尝试演示收缩数据库如何导致碎片化。我在标识列上创建了一个表,一个聚集索引并插入了一些记录,然后发出以下命令来检查碎片:
select avg_fragmentation_in_percent from sys.dm_db_index_physical_stats(DB_ID('databasename'),
OBJECT_ID('tablename'), 1, NULL, 'limited')
这是我收到的错误消息:
Could not find table or object ID 2139154666. Check system catalog.
我从 sysobjects 中执行了一个 select *,并且该对象存在于该 objectID 中。为什么 SQL Server 认为它不存在?我究竟做错了什么?
您处于错误的数据库上下文中。
尝试:
或者你可以扔一个
USE Databasename
在第一行。
我猜它是在
master
或类似的上下文中执行的,不会有OBJECTID
您正在寻找的内容。