檢視物件定義

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