SQLServer2005中5個不能查詢的系統表
在SQLServer2005裡,有這麼幾個特殊的系統表,我們無法直接查詢它,但它確實又是存在,這幾個系統表是:
sysallocunits
syshobts
syshobtcolumns
sysrowsets
sysrowsetcolumns
這裡所說的查詢,是指直接透過SELECT語句查詢,我們試著查詢:
SELECT * FROM sysallocunits
GO SELECT * FROM syshobts
GO SELECT * FROM syshobtcolumns
GO SELECT * FROM sysrowsets
GO SELECT * FROM sysrowsetcolumns
GO
執行上面的語句後,你會收到以下錯誤報告:
Msg 208, Level 16, State 1, Line 1
Invalid object name 'sysallocunits'.
Msg 208, Level 16, State 1, Line 1
Invalid object name 'syshobts'.
Msg 208, Level 16, State 1, Line 1
Invalid object name 'syshobtcolumns'.
Msg 208, Level 16, State 1, Line 1
Invalid object name 'sysrowsets'.
Msg 208, Level 16, State 1, Line 1
Invalid object name 'sysrowsetcolumns'.
但當我們透過以下語句檢查它的存在時,你會發現其實這5個系統表是存在的:
SELECT
name FROM sys.objects WHERE name IN (
'sysallocunits',
'syshobts',
'syshobtcolumns',
'sysrowsets',
'sysrowsetcolumns' ) GO
為什麼會這麼神奇?這是因為,這5個系統表是用於存放所有表以及索引的後設資料表,只能用於CHECKDB操作檢查後設資料一致
性的時候用到,當我們使用DBCC CHECKDB命令時,首先的內部操作就是要對這幾個表進行一致性檢查,找出裡面的後設資料是否有
損壞,同時注意,如果出現在該步操作時發生的任何錯誤,都是無法修復的,只能透過備份檔案還原來修復.
關於這個,更多的內容可參考SQL Server 資料庫引擎團隊的BLOG:
http://blogs.msdn.com/sqlserverstorageengine/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26273052/viewspace-1058334/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle系統表查詢Oracle
- hfm系統常見表查詢
- 幾個查詢系統資訊的命令!
- mysql 從一個表中查詢,插入到另一個表中MySql
- [MySQL] - 聯表查詢,查詢一個不在另一個表的記錄MySql
- Mysql中查詢系統時間MySql
- MySQL 合併查詢union 查詢出的行合併到一個表中MySql
- 查詢某個表的索引資訊索引
- MySQL 合併查詢join 查詢出的不同列合併到一個表中MySql
- 查詢表中的連結行
- Oracle中對兩個資料表交集的查詢(轉)Oracle
- 查詢一個表的外來鍵
- 雙主鍵,,查詢不在另一個表中的記錄
- 【小山】sql server通過查詢系統表得到縱向的表結構SQLServer
- 在 with 查詢中只查詢個別欄位
- 如何查詢某個資料表中除某個欄位的所有資訊???
- ABAP 查詢系統BAPI的方法API
- django 兩個表或多個表聯合查詢Django
- SQL Server中各個系統表的作用SQLServer
- exp匯出一個表中符合查詢條件的資料
- 提高 Laravel Eloquent 查詢的5個小技巧Laravel
- SQL裡3個表的連線查詢SQL
- Oracle中把一個查詢結果插入到一張表中Oracle
- 連線池溢位以及大量查詢系統表的問題
- 子查詢-表子查詢
- SQL 兩個表組合查詢SQL
- GBase 庫中查詢表的列資訊
- MySQL 查詢所有表中的記錄數MySql
- MYSQL INNODB中hash查詢表的實現MySql
- 查詢表空間中的extent數量
- 查詢一個表的一列插入到另一個表
- 資料庫中單表查詢資料庫
- 查詢表的大小
- Sql查詢 一個表中某欄位的資料在另一個表中某欄位中不存在的SQL
- 關於SQLServer2005的學習筆記——子查詢SQLServer筆記
- 在Linux中,如何查詢系統中佔用CPU最高的程序?Linux
- MySQL查詢某個列中相同值的數量統計MySql
- 分散式系統中的解耦模式:領域查詢 - mathiasverraes分散式解耦模式