sysindexkey上的dbcc ind命令失败

时间:2010-01-16 09:25:35

标签: sql-server

我在sql 2000中有一个数据库。当我打开系统表sysindexkeys时,我看到很多记录。 但是,当我对此表使用dbcc ind命令时,我不会获得有关该表的任何信息。 我也用过 DBCC TRACEON(3604)

继承人我做了什么: -

声明@DBID Int,@ TableID Int 选择@DBID = db_id(),@ TableID = object_id('sysindexkeys') DBCC ind(@DBID,@ TableID,-1) GO

这不提供任何信息。但是,如果我将此命令用于其他表,我得到的页面没有这些表的详细信息。 任何人都可以帮我解决这个问题。

谢谢, 犹大书

1 个答案:

答案 0 :(得分:0)

和以前一样,我只是在2005年进行了测试,但同样的信息可能适用。在2005年,我可以通过DAC向DBCC提出一些基础系统表,但不是全部 - 有些似乎被阻止被访问。

Sys.SysHobts和Sys.SysHobtColumns有效,但Sys.SysIndexes和Sys.SysIndexKeys都失败。

如果从sys.sysobjects中选择,您会注意到大部分系统表都有负ID,这似乎与DBCC一起使用,并阻止声称不存在的操作。

我测试了一个样本并且该规则似乎成立,因此可能很好地表明您是否可以这样做。我没有看到文件说DBCC Ind在它可以检查的对象方面受到限制,但是没有相关的官方文档。由于我们目睹了它,显然存在人为的限制。