国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL Server系統視圖

2024-08-31 00:53:06
字體:
來源:轉載
供稿:網友

--> Title  : SQL Server系統視圖

--> Author : wufeng4552

--> Date   : 2009-10-28



目錄視圖

目錄視圖返回 SQL Server 數據庫引擎使用的信息。建議您使用目錄視圖這一最常用的目錄元數據界面,它可為您提供最有效的方法來獲取、轉換并顯示此信息的自定義形式。所有用戶可用目錄元數據都通過目錄視圖來顯示。

注意:目錄視圖不包含有關復制、備份、數據庫維護計劃或 SQL Server 代理目錄數據的信息。

某些目錄視圖從其他目錄視圖繼承行。例如,sys.tables 目錄視圖繼承自 sys.objects 目錄視圖。sys.objects 目錄視圖稱為基本視圖,而 sys.tables 視圖稱為派生視圖。sys.tables 目錄視圖返回專用于表的列,同時還返回 sys.objects 目錄視圖返回的所有列。sys.objects 目錄視圖返回表之外的對象(例如,存儲過程和視圖)的行。創建表之后,表的元數據將在兩個視圖中返回。盡管兩個目錄視圖返回有關表的不同級別的信息,但在此表的元數據中只有一個具有一個名稱和一個 object_id 的項。這可以總結如下:

基本視圖包含列的子集和行的超集。

派生視圖包含列的超集和行的子集。

SQL Server 中的目錄視圖具有如下類別:

更改跟蹤目錄視圖   錯誤消息目錄視圖   CLR 程序集目錄視圖  對象目錄視圖  

數據庫和文件目錄視圖  分區函數目錄視圖  數據庫郵件視圖 基于策略的管理視圖

數據庫鏡像目錄視圖  源調控器目錄視圖  數據收集器視圖  標量類型目錄視圖

數據空間  架構目錄視圖  端點目錄視圖  安全性目錄視圖  擴展事件目錄視圖

Service Broker 目錄視圖  擴展屬性目錄視圖  服務器范圍配置目錄視圖

全文搜索目錄視圖  xml 架構(XML 類型系統)目錄視圖  鏈接服務器目錄視圖

信息架構視圖

信息架構視圖是 SQL Server 提供的幾種獲取元數據的方法之一。

注意:信息架構視圖提供 SQL Server 元數據的獨立于系統表的內部視圖。盡管已經對基礎系統表進行了重要的修改,信息架構視圖仍然可使應用程序正常工作。SQL Server 中包含的信息架構視圖符合 INFORMATION_SCHEMA 的 ISO 標準定義

引用當前服務器時,SQL Server 支持三部分命名約定。ISO 標準也支持三部分命名約定。但是,兩種命名約定中使用的名稱并不相同。信息架構視圖是在名為 INFORMATION_SCHEMA 的特殊架構中定義的。此架構包含在每個數據庫中。每個信息架構視圖均包含存儲在特定數據庫中的所有數據對象的元數據。下表顯示了 SQL Server 名稱和 SQL 標準名稱之間的關系。

SQL Server 名稱
對應的 SQL 標準等價名稱

數據庫
目錄

架構
架構

對象
對象

用戶定義數據類型



上述名稱映射約定適用于以下與 ISO 兼容的 SQL Server 視圖。

CHECK_CONSTRAINTS ; REFERENTIAL_CONSTRAINTS  COLUMN_DOMAIN_USAGE  ; ROUTINES  ; COLUMN_PRIVILEGES ROUTINE_COLUMNS ;COLUMNS ;SCHEMATA ;CONSTRAINT_COLUMN_USAGE TABLE_CONSTRAINTS ;CONSTRAINT_TABLE_USAGE ;TABLE_PRIVILEGES DOMAIN_CONSTRAINTS ;TABLES ;DOMAINS ;VIEW_COLUMN_USAGE KEY_COLUMN_USAGE ;VIEW_TABLE_USAGE ;PARAMETERS ;VIEWS

此外,某些視圖還包含對其他類的數據(如字符數據或二進制數據)的引用。引用信息架構視圖時,必須使用包含 INFORMATION_SCHEMA 架構名稱的限定名。例如:

SELECT TABLE_CATALOG,

       TABLE_SCHEMA,

       TABLE_NAME,

       COLUMN_NAME,

       COLUMN_DEFAULT

FROM AdventureWorks.INFORMATION_SCHEMA.COLUMNS

WHERE TABLE_NAME = N'Product';

GO

兼容性視圖

兼容性視圖

SQL Server 早期版本中的許多系統表現在都作為一組視圖實現。這些視圖稱為兼容性視圖,僅用于向后兼容。兼容性視圖公開的元數據在 SQL Server 2000 中也提供。但是,兼容性視圖不公開與在 SQL Server 2005 及更高版本中引入的功能有關的任何元數據。因此,當您使用新功能(例如 Service Broker 或分區)時,必須切換到使用目錄視圖。 升級到目錄視圖的另一個原因是,存儲用戶 ID 和類型 ID 的兼容性視圖列可能返回 NULL 或觸發算術溢出。這是因為您可以創建超過 32,767 個用戶、組和角色,以及超過 32,767 種數據類型。例如,如果要創建 32,768 個用戶,則可運行以下查詢:SELECT * FROM sys.sysusers。如果 ARITHABORT 設置為 ON,則查詢會失敗,并出現算術溢出錯誤。如果 ARITHABORT 設置為 OFF,則 uid 列返回 NULL。若要避免這些問題,建議您使用新增的目錄視圖,這些視圖可以處理增加的用戶 ID 和類型 ID 數目。下表列出了會出現此溢出的列。

列名
兼容性視圖
SQL Server 2005 視圖

xusertype
syscolumns
sys.columns

usertype
syscolumns
sys.columns

memberuid
sysmembers
sys.database_role_members

groupuid
sysmembers
sys.database_role_members

uid
sysobjects
sys.objects

uid
sysprotects
·                                 sys.database_permissions

·                                 sys.server_permissions

grantor
sysprotects
·                                 sys.database_permissions

·                                 sys.server_permissions

xusertype
systypes
sys.types

uid
systypes
sys.types

uid
sysusers
sys.database_principals

altuid
sysusers
sys.database_principals

gid
sysusers
sys.database_principals

uid
syscacheobjects
sys.dm_exec_plan_attributes

uid
sysprocesses
sys.dm_exec_requests


復制視圖

復制視圖

這些視圖包含 Microsoft SQL Server 中由復制使用的信息。 使用這些視圖可以更輕松地訪問復制系統表中的數據。將某個用戶數據庫啟用為發布數據庫或訂閱數據庫時,便會在該數據庫中創建視圖。 從復制拓撲中刪除用戶數據庫時,便會刪除該數據庫中的所有復制對象。 訪問復制元數據的首選方法是使用復制存儲過程。

任何用戶都不應直接更改系統視圖。

動態管理視圖和函數

動態管理視圖和函數返回可用于監視服務器實例的運行狀況、診斷故障以及優化性能的服務器狀態信息。

動態管理視圖和函數返回特定于實現的內部狀態數據。在未來的 SQL Server 版本中,它們的架構和返回的數據可能會發生更改。因此,未來版本中的動態管理視圖和函數可能與 SQL Server 2008 中的動態管理視圖和函數不兼容

動態管理視圖和函數分為兩種類型:

服務器范圍內的動態管理視圖和函數。此類型需要具有該服務器的 VIEW SERVER STATE 權限。

數據庫范圍內的動態管理視圖和函數。此類型需要具有該數據庫的 VIEW DATABASE STATE 權限。

查詢動態管理視圖

通過使用兩部分、三部分或四部分所組成的名稱,可在 Transact-SQL 語句中引用動態管理視圖。另一方面,也可使用兩部分或三部分所組成的名稱在 Transact-SQL 語句中引用動態管理函數。不能使用只由一部分組成的名稱在 Transact-SQL 語句中引用動態管理視圖和函數。

所有動態管理視圖和函數都存在于 sys 架構中,并遵循 dm_* 命名約定。當使用動態管理視圖或函數時,必須使用 sys 架構作為視圖或函數名稱的前綴。例如,若要查詢 dm_os_wait_stats 動態管理視圖,請運行以下查詢:

SELECT wait_type,

       wait_time_ms

FROM sys.dm_os_wait_stats;

GO



所需的權限

查詢動態管理視圖或函數需要對于對象具有 SELECT 權限以及 VIEW SERVER STATE 或 VIEW DATABASE STATE 權限。這樣您可以有選擇地限制用戶或登錄名對動態管理視圖和函數的訪問。為此,首先在 master 中創建用戶,然后拒絕該用戶對不希望被訪問的動態管理視圖或函數的 SELECT 權限。此后,無論該用戶的數據庫上下文如何,用戶都將無法選擇這些動態管理視圖或函數。

注意:由于 DENY 的優先級高,所以如果用戶被授予 VIEW SERVER STATE 權限但被拒絕 VIEW
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄂托克前旗| 宣武区| 鹰潭市| 涟水县| 新竹市| 三门峡市| 呼和浩特市| 泰州市| 玛沁县| 阳泉市| 福州市| 宿迁市| 剑河县| 西吉县| 陵川县| 含山县| 博罗县| 梧州市| 青岛市| 巴彦县| 德化县| 乐都县| 凤冈县| 磐安县| 塔城市| 蕲春县| 苏尼特右旗| 沭阳县| 南雄市| 西藏| 莱阳市| 吉安县| 连山| 织金县| 阜宁县| 盐源县| 青州市| 潮州市| 温泉县| 金秀| 外汇|