Microsoft® SQL Server™ 提供下面兩種獲取元數(shù)據(jù)的方法:系統(tǒng)存儲(chǔ)過(guò)程和信息架構(gòu)視圖。
說(shuō)明 若要獲取元數(shù)據(jù),請(qǐng)使用系統(tǒng)存儲(chǔ)過(guò)程、系統(tǒng)函數(shù)或只是這些系統(tǒng)提供的視圖。如果在將來(lái)的版本中對(duì)系統(tǒng)表進(jìn)行修改,那么直接查詢(xún)系統(tǒng)表可能不會(huì)提供準(zhǔn)確的信息。
這些視圖提供關(guān)于 SQL Server 元數(shù)據(jù)的獨(dú)立于系統(tǒng)表的內(nèi)部視圖。即使已經(jīng)對(duì)系統(tǒng)表進(jìn)行了重要的修改,信息架構(gòu)視圖也允許應(yīng)用程序正常地工作。SQL Server 中包含的信息架構(gòu)視圖符合 SQL-92 標(biāo)準(zhǔn)針對(duì) INFORMATION_SCHEMA 的定義。
SQL Server 支持使用三段命名規(guī)則引用當(dāng)前的服務(wù)器。SQL-92 標(biāo)準(zhǔn)也支持三段命名規(guī)則。但是,在兩個(gè)命名規(guī)則中使用的名稱(chēng)是不同的。這些視圖在一個(gè)名為 INFORMATION_SCHEMA 的特殊架構(gòu)中定義。每個(gè)數(shù)據(jù)庫(kù)都包含這個(gè)架構(gòu)。每個(gè) INFORMATION_SCHEMA 視圖中都包含特定數(shù)據(jù)庫(kù)中存儲(chǔ)的所有數(shù)據(jù)對(duì)象的元數(shù)據(jù)。下表描述 SQL Server 名稱(chēng)和 SQL-92 標(biāo)準(zhǔn)名稱(chēng)之間的關(guān)系。
SQL Server 名稱(chēng) | 映射到下面等價(jià)的 SQL-92 名稱(chēng) |
---|---|
數(shù)據(jù)庫(kù) | 目錄 |
所有者 | 架構(gòu) |
對(duì)象 | 對(duì)象 |
用戶(hù)定義數(shù)據(jù)類(lèi)型 | 域 |
這個(gè)命名規(guī)則映射適用于那些與 SQL Server SQL-92 兼容的視圖。這些視圖在一個(gè)名為 INFORMATION_SCHEMA 的特殊架構(gòu)中定義。每個(gè)數(shù)據(jù)庫(kù)都包含這個(gè)架構(gòu)。每個(gè) INFORMATION_SCHEMA 視圖中都包含特定數(shù)據(jù)庫(kù)中存儲(chǔ)的所有數(shù)據(jù)對(duì)象的元數(shù)據(jù)。
此外,有些視圖還包含對(duì)不同數(shù)據(jù)類(lèi)(例如字符數(shù)據(jù)或二進(jìn)制數(shù)據(jù))的引用。
引用信息架構(gòu)視圖時(shí),必須在通常指定用戶(hù)名稱(chēng)的位置使用包含 INFORMATION_SCHEMA 架構(gòu)名稱(chēng)的完全合格的名稱(chēng)。例如:
相關(guān)文章SELECT *
FROM Northwind.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'