檢視物件定義
檢視資料庫物件之 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 定義。