2010-01-16 71 views
0

我在sql 2000中有一個數據庫。當我打開系統表sysindexkeys時,我看到很多記錄。 但是,當我對此表使用dbcc ind命令時,我沒有得到任何有關該表的信息。 我還用 DBCC TRACEON(3604)sysindexkey上的dbcc ind命令失敗

繼承人我做了什麼: -

聲明@DBID詮釋,@TableID詮釋 選擇@DBID = DB_ID(),@TableID = OBJECT_ID( 'sysindexkeys') DBCC IND(@DBID,@TableID,-1) GO

如果我使用此命令爲其他表這不會給任何information.However,我得到的頁面,這些表沒有詳細說明。 任何人都可以幫我解決這個問題。

感謝, 裘德

回答

0

像以前一樣,我才真正成立,以測試這個2005上,但相同的信息可能完全適用。在2005年,我可以通過DAC向DBCC提供一些底層系統表,但不是全部 - 有些似乎被阻止被訪問。

Sys.SysHobts和Sys.SysHobtColumns工作,但Sys.SysIndexes和Sys.SysIndexKeys都失敗。

如果您從sys.sysobjects中進行選擇,您會注意到大部分系統表都具有負ID,並且這似乎與可與DBCC一起使用的關聯關係以及哪些阻止聲明不存在的操作。

我測試了一個樣本,規則似乎成立,所以可能是您是否可以做到的一個很好的指示。我還沒有看到文檔說DBCC Ind在它可以檢測的對象上有限,但是不管它有多少官方文檔。自從我們目睹這一點以來,顯然存在人爲限制。