檢視物件定義
檢視資料庫物件之 Transact-SQL 來源程式碼的規則比檢視中繼資料的規則來得嚴格。若要查看物件的 Transact-SQL 定義,使用者必須擁有該物件,或是被授與該物件的下列權限之一:
- CONTROL
- ALTER
- TAKE OWNERSHIP
- VIEW DEFINITION
下列是這些規則運作的一些範例:
如果使用者被授與 myTable 資料表的 ALTER 權限,使用者就可以查看子元件的 Transact-SQL 定義,這些定義與下表列出之每個目錄檢視中 definition 資料行內的資料表相關。如果使用者沒有上述權限之一,或者未擁有該物件,目錄檢視之 definition 資料行的 Transact-SQL 定義會是 NULL。
如果使用者不是 myTable 的資料表擁有者,而且僅被授與資料表的 SELECT 權限,則當使用者存取下列目錄檢視時,definition 資料行是 NULL。
目錄檢視名稱 其 Transact-SQL 定義 sys.sql_modules
mytable 中的所有觸發程序
sys.computed_columns
myTable 中的所有計算資料行
sys.check_constraints
myTable 中的所有 CHECK 條件約束
sys.default_constraints
myTable 中的所有 DEFAULT 條件約束
假設使用者被授與 myProcedure 程序的 EXECUTE 權限。當使用者嘗試存取 sys.sql_modules 目錄檢視查看該程序的 Transact-SQL 定義時,definition 資料行會有 Null 值。相反地,如果使用者被授與 myProcedure 的 TAKE OWNERSHIP 權限,使用者將會在 sys.sql_modules 中之 definition 資料行看到該程序的 Transact-SQL 定義。
請參閱
概念
中繼資料可見性組態
VIEW DEFINITION 權限
VIEW ANY DATABASE 權限
其他資源
sys.sql_modules (Transact-SQL)
sys.computed_columns (Transact-SQL)
sys.check_constraints (Transact-SQL)
sys.default_constraints (Transact-SQL)