幾個系統(tǒng)存儲過程用系統(tǒng)表提供有關存儲過程的信息。使用這些存儲過程可以: 查看用于創(chuàng)建存儲過程的 Transact-SQL 語句。這對于沒有用于創(chuàng)建存儲過程的 Transact-SQL 腳本文件的用戶是很有用的。
獲得有關存儲過程的信息(如存儲過程的所有者、創(chuàng)建時間及其參數(shù))。
列出指定存儲過程所使用的對象及使用指定存儲過程的過程。此信息可用來識別那些受數(shù)據(jù)庫中某個對象的更改或刪除影響的過程。 查看存儲過程的定義sp_helptext
顯示規(guī)則、默認值、未加密的存儲過程、用戶定義函數(shù)、觸發(fā)器或視圖的文本。
語法
sp_helptext [ @objname = ] @#name@#
參數(shù)
[@objname =] @#name@#
對象的名稱,將顯示該對象的定義信息。對象必須在當前數(shù)據(jù)庫中。name 的數(shù)據(jù)類型為 nvarchar(776),沒有默認值。
返回代碼值
0(成功)或 1(失?。?BR> 結果集
列名數(shù)據(jù)類型描述Textnvarchar(255)對象定義文本
注釋
sp_helptext 在多個行中顯示用來創(chuàng)建對象的文本,其中每行有 Transact-SQL 定義的 255 個字符。這些定義只駐留在當前數(shù)據(jù)庫的 syscomments 表的文本中。
權限
執(zhí)行權限默認授予 public 角色。
示例
面的示例顯示 employee_insupd 觸發(fā)器的文本,該觸發(fā)器在數(shù)據(jù)庫 pubs 中。
USE pubsEXEC sp_helptext @#employee_insupd@#
查看有關存儲過程的信息 sp_help
報告有關數(shù)據(jù)庫對象(sysobjects 表中列出的任何對象)、用戶定義數(shù)據(jù)類型或 Microsoft® SQL Server™ 所提供的數(shù)據(jù)類型的信息。
語法
sp_help [ [ @objname = ] name ]
參數(shù)
[@objname =] name
是 sysobjects 中的任意對象的名稱,或者是在 systypes 表中任何用戶定義數(shù)據(jù)類型的名稱。Name 的數(shù)據(jù)類型為 nvarchar(776),默認值為 NULL。不能使用數(shù)據(jù)庫名稱。
返回代碼值
0(成功)或 1(失?。?BR> 結果集
返回的結果集取決于 name 是否已指定、何時指定以及它是何種數(shù)據(jù)庫對象等因素。 如果執(zhí)行不帶參數(shù)的 sp_help,則返回當前數(shù)據(jù)庫中現(xiàn)有的所有類型對象的摘要信息。 列名數(shù)據(jù)類型描述Namenvarchar(128)對象名Ownernvarchar(128)對象所有者Object_typenvarchar(31)對象類型
如果 name 是 SQL Server 數(shù)據(jù)類型或用戶定義數(shù)據(jù)類型,則 sp_help 返回此結果集。 列名數(shù)據(jù)類型描述Type_namenvarchar(128)數(shù)據(jù)類型名稱。Storage_typenvarchar(128)SQL Server 類型名稱。Lengthsmallint數(shù)據(jù)類型的物理長度(以字節(jié)為單位)。Precint精度(總的數(shù)字位數(shù))。Scaleint小數(shù)點右邊的數(shù)字位數(shù)。Nullablevarchar(35)指明是否允許 NULL 值:是或否。Default_namenvarchar(128)綁定到該類型的默認值名稱。如果沒有綁定默認值,則為 NULL。Rule_namenvarchar(128)綁定到該類型的規(guī)則名稱。如果沒有綁定默認值,則為 NULL。Collationsysname數(shù)據(jù)類型的排序規(guī)則。如果是非字符數(shù)據(jù)類型,則為 NULL。
如果 name 是任意數(shù)據(jù)庫對象(而不是數(shù)據(jù)類型),那么 sp_help 將返回此結果集,以及基于指定對象類型的其它結果集。 列名數(shù)據(jù)類型描述Namenvarchar(128)表名Ownernvarchar(128)表的所有者Typenvarchar(31)表的類型Created_datetimedatetime創(chuàng)建的日期表
根據(jù)指定的數(shù)據(jù)庫對象,sp_help 返回其它結果集。
如果 name 是系統(tǒng)表、用戶表或者視圖,則 sp_help 返回這些結果集(例外,對于視圖,不返回描述數(shù)據(jù)文件在文件組中所處位置的結果集)。
按列對象返回其它結果集: 列名數(shù)據(jù)類型描述Column_namenvarchar(128)列名。Typenvarchar(128)列數(shù)據(jù)類型。Computedvarchar(35)指出是否計算了在列中的值:(是或否)。Lengthint以字節(jié)為單位的列長度。Precchar(5)列精度。Scalechar(5)列數(shù)值范圍。Nullablevarchar(35)指出在列中是否允許 NULL 值:是或否。TrimTrailingBlanksvarchar(35)剪裁尾隨空格(是或否)。FixedLenNullInSourcevarchar(35)只是為了向后兼容。Collationsysname列的排序規(guī)則。如果是非字符數(shù)據(jù)類型,則為 NULL 按標識列返回的其它結果集: 列名數(shù)據(jù)類型描述Identitynvarchar(128)其數(shù)據(jù)類型被聲明為標識的列名。Seednumeric標識列的起始值。Incrementnumeric此列中的值所使用的增量。Not For Replicationint當重復登錄(例如 sqlrepl)試圖在表中插入數(shù)據(jù)時,無法強制使用 IDENTITY 屬性:
1 = True
0 = False
按列返回的其它結果集: 列名數(shù)據(jù)類型描述RowGuidColsysname全局標識符列的名稱。
按文件組返回的其它結果集: 列名數(shù)據(jù)類型描述Data_located_on_filegroupnvarchar(128)數(shù)據(jù)所在的文件組(主要文件組、次要文件組或事務日志)。
按索引返回的其它結果集: 列名數(shù)據(jù)類型描述index_namesysname索引名。index_descriptionvarchar(210)索引的描述。index_keysnvarchar(2078)生成索引所在列的列名。
按約束返回的其它結果集 列名數(shù)據(jù)類型描述constrain_typenvarchar(146)約束的類型。constrain_namenvarchar(128)約束名。 delete_actionnvarchar(9)指明 DELETE 操作是:無操作、層疊或暫缺。
(僅適用于 FOREIGN KEY 約束。)
update_actionnvarchar(9)指明 UPDATE 操作是:無操作、層疊或暫缺。
(僅適用于 FOREIGN KEY 約束。)
status_enabledvarchar(8)指明是否啟用約束:啟用、禁用或暫缺。(僅適用于 CHECK 和 FOREIGN KEY 約束。) Status_for_replicationvarchar(19)指明約束是否用于復制。(僅適用于 CHECK 和 FOREIGN KEY 約束。)constrain_keysnvarchar (2078)構成約束的列名?;蛘撸▽τ谀J值和規(guī)則而言)指定義默認值或規(guī)則的文本。
按引用對象返回的其它結果集: 列名數(shù)據(jù)類型描述Table is referenced bynvarchar(516)識別引用表的其它數(shù)據(jù)庫對象。
如果 name 是系統(tǒng)存儲過程或擴展存儲過程,那么 sp_help 將返回此結果集。 列名數(shù)據(jù)類型描述Parameter_namenvarchar(128)存儲過程參數(shù)名。Typenvarchar(128)存儲過程參數(shù)的數(shù)據(jù)類型。Lengthsmallint物理存儲長度(以字節(jié)為單位)。Precint精度(總的數(shù)字位數(shù))。Scaleint小數(shù)點右邊的數(shù)字個數(shù)。Param_ordersmallint參數(shù)的順序。
注釋
sp_help 過程僅在當前數(shù)據(jù)庫中查找對象。
當沒有指定 name 時,sp_helptrigger 列出當前數(shù)據(jù)庫中所有對象的名稱、所有者和對象類型。sp_helptrigger 提供有關觸發(fā)器的信息。
權限
執(zhí)行權限默認授予 public 角色。
示例A. 返回有關所有對象的信息
下面的示例列出有關 sysobjects 中每個對象的信息。
USE masterEXEC sp_help
B. 返回有關單個對象的信息
下面的示例顯示有關 publishers 表的信息。
USE pubsEXEC sp_help publishers
查看存儲過程的相關性
sp_depends
顯示有關數(shù)據(jù)庫對象相關性的信息(例如,依賴表或視圖的視圖和過程,以及視圖或過程所依賴的表和視圖)。
不報告對當前數(shù)據(jù)庫以外對象的引用。
語法
sp_depends [ @objname = ] @#object@#
參數(shù)
[@objname =] @#object@#
被檢查相關性的數(shù)據(jù)庫對象。對象可以是表、視圖、存儲過程或觸發(fā)器。Object 的數(shù)據(jù)類型為 varchar(776),沒有默認值。
返回代碼值
0(成功)或 1(失?。?BR> 結果集
sp_depends 顯示兩個結果集。
下面的結果集顯示 object 所依賴的對象。
列名數(shù)據(jù)類型描述namenvarchar(40)存在相關性的項目名稱。typenvarchar(16)項目類型。updatednvarchar(7)是否更新項目。selectednvarchar(8)項目是否用于 SELECT 語句。columnsysname存在相關性的列或參數(shù)。
下面的結果集顯示依賴 object 的對象。
列名數(shù)據(jù)類型描述namenvarchar(40)存在相關性的項目名稱。typenvarchar(16)項目類型。
注釋
若一個對象引用另一個對象,則認為前者依賴后者。sp_depends 通過查看 sysdepends 表確定相關性。
權限
執(zhí)行權限默認授予 public 角色。
示例
下面的示例列出依賴 Customers 表的數(shù)據(jù)庫對象。
USE NorthwindEXEC sp_depends @#Customers@#
查看關于擴展存儲過程的信息
sp_helpextendedproc
顯示當前定義的擴展存儲過程,以及此過程(函數(shù))所屬動態(tài)鏈接庫的名稱。
語法
sp_helpextendedproc [ [@funcname = ] @#procedure@# ]
參數(shù)
[@funcname =] @#procedure@#
是要顯示其信息的擴展存儲過程的名稱。procedure 的數(shù)據(jù)類型為 sysname,默認值為 NULL。
返回代碼值
0(成功)或 1(失?。?BR> 結果集列名數(shù)據(jù)類型描述namesysname擴展存儲過程的名稱。dllnvarchar(255)動態(tài)鏈接庫的名稱。
注釋
指定 procedure 時,sp_helpextendedproc 報告指定擴展存儲過程的信息。不提供 procedure 時,
sp_helpextendedproc 返回全部擴展存儲過程的名稱,以及每個擴展存儲過程所屬的 DLL 名稱。
權限
執(zhí)行權限默認授予 public 角色。
示例A. 報告所有擴展存儲過程的幫助
下面的示例報告所有擴展存儲過程的信息。
USE masterEXEC sp_helpextendedproc
B. 報告單個擴展存儲過程的幫助
下面的示例報告 xp_cmdshell 擴展存儲過程的信息。
USE masterEXEC sp_helpextendedproc xp_cmdshell
獲得有關存儲過程的信息(如存儲過程的所有者、創(chuàng)建時間及其參數(shù))。
列出指定存儲過程所使用的對象及使用指定存儲過程的過程。此信息可用來識別那些受數(shù)據(jù)庫中某個對象的更改或刪除影響的過程。 查看存儲過程的定義sp_helptext
顯示規(guī)則、默認值、未加密的存儲過程、用戶定義函數(shù)、觸發(fā)器或視圖的文本。
語法
sp_helptext [ @objname = ] @#name@#
參數(shù)
[@objname =] @#name@#
對象的名稱,將顯示該對象的定義信息。對象必須在當前數(shù)據(jù)庫中。name 的數(shù)據(jù)類型為 nvarchar(776),沒有默認值。
返回代碼值
0(成功)或 1(失?。?BR> 結果集
列名數(shù)據(jù)類型描述Textnvarchar(255)對象定義文本
注釋
sp_helptext 在多個行中顯示用來創(chuàng)建對象的文本,其中每行有 Transact-SQL 定義的 255 個字符。這些定義只駐留在當前數(shù)據(jù)庫的 syscomments 表的文本中。
權限
執(zhí)行權限默認授予 public 角色。
示例
面的示例顯示 employee_insupd 觸發(fā)器的文本,該觸發(fā)器在數(shù)據(jù)庫 pubs 中。
USE pubsEXEC sp_helptext @#employee_insupd@#
查看有關存儲過程的信息 sp_help
報告有關數(shù)據(jù)庫對象(sysobjects 表中列出的任何對象)、用戶定義數(shù)據(jù)類型或 Microsoft® SQL Server™ 所提供的數(shù)據(jù)類型的信息。
語法
sp_help [ [ @objname = ] name ]
參數(shù)
[@objname =] name
是 sysobjects 中的任意對象的名稱,或者是在 systypes 表中任何用戶定義數(shù)據(jù)類型的名稱。Name 的數(shù)據(jù)類型為 nvarchar(776),默認值為 NULL。不能使用數(shù)據(jù)庫名稱。
返回代碼值
0(成功)或 1(失?。?BR> 結果集
返回的結果集取決于 name 是否已指定、何時指定以及它是何種數(shù)據(jù)庫對象等因素。 如果執(zhí)行不帶參數(shù)的 sp_help,則返回當前數(shù)據(jù)庫中現(xiàn)有的所有類型對象的摘要信息。 列名數(shù)據(jù)類型描述Namenvarchar(128)對象名Ownernvarchar(128)對象所有者Object_typenvarchar(31)對象類型
如果 name 是 SQL Server 數(shù)據(jù)類型或用戶定義數(shù)據(jù)類型,則 sp_help 返回此結果集。 列名數(shù)據(jù)類型描述Type_namenvarchar(128)數(shù)據(jù)類型名稱。Storage_typenvarchar(128)SQL Server 類型名稱。Lengthsmallint數(shù)據(jù)類型的物理長度(以字節(jié)為單位)。Precint精度(總的數(shù)字位數(shù))。Scaleint小數(shù)點右邊的數(shù)字位數(shù)。Nullablevarchar(35)指明是否允許 NULL 值:是或否。Default_namenvarchar(128)綁定到該類型的默認值名稱。如果沒有綁定默認值,則為 NULL。Rule_namenvarchar(128)綁定到該類型的規(guī)則名稱。如果沒有綁定默認值,則為 NULL。Collationsysname數(shù)據(jù)類型的排序規(guī)則。如果是非字符數(shù)據(jù)類型,則為 NULL。
如果 name 是任意數(shù)據(jù)庫對象(而不是數(shù)據(jù)類型),那么 sp_help 將返回此結果集,以及基于指定對象類型的其它結果集。 列名數(shù)據(jù)類型描述Namenvarchar(128)表名Ownernvarchar(128)表的所有者Typenvarchar(31)表的類型Created_datetimedatetime創(chuàng)建的日期表
根據(jù)指定的數(shù)據(jù)庫對象,sp_help 返回其它結果集。
如果 name 是系統(tǒng)表、用戶表或者視圖,則 sp_help 返回這些結果集(例外,對于視圖,不返回描述數(shù)據(jù)文件在文件組中所處位置的結果集)。
按列對象返回其它結果集: 列名數(shù)據(jù)類型描述Column_namenvarchar(128)列名。Typenvarchar(128)列數(shù)據(jù)類型。Computedvarchar(35)指出是否計算了在列中的值:(是或否)。Lengthint以字節(jié)為單位的列長度。Precchar(5)列精度。Scalechar(5)列數(shù)值范圍。Nullablevarchar(35)指出在列中是否允許 NULL 值:是或否。TrimTrailingBlanksvarchar(35)剪裁尾隨空格(是或否)。FixedLenNullInSourcevarchar(35)只是為了向后兼容。Collationsysname列的排序規(guī)則。如果是非字符數(shù)據(jù)類型,則為 NULL 按標識列返回的其它結果集: 列名數(shù)據(jù)類型描述Identitynvarchar(128)其數(shù)據(jù)類型被聲明為標識的列名。Seednumeric標識列的起始值。Incrementnumeric此列中的值所使用的增量。Not For Replicationint當重復登錄(例如 sqlrepl)試圖在表中插入數(shù)據(jù)時,無法強制使用 IDENTITY 屬性:
1 = True
0 = False
按列返回的其它結果集: 列名數(shù)據(jù)類型描述RowGuidColsysname全局標識符列的名稱。
按文件組返回的其它結果集: 列名數(shù)據(jù)類型描述Data_located_on_filegroupnvarchar(128)數(shù)據(jù)所在的文件組(主要文件組、次要文件組或事務日志)。
按索引返回的其它結果集: 列名數(shù)據(jù)類型描述index_namesysname索引名。index_descriptionvarchar(210)索引的描述。index_keysnvarchar(2078)生成索引所在列的列名。
按約束返回的其它結果集 列名數(shù)據(jù)類型描述constrain_typenvarchar(146)約束的類型。constrain_namenvarchar(128)約束名。 delete_actionnvarchar(9)指明 DELETE 操作是:無操作、層疊或暫缺。
(僅適用于 FOREIGN KEY 約束。)
update_actionnvarchar(9)指明 UPDATE 操作是:無操作、層疊或暫缺。
(僅適用于 FOREIGN KEY 約束。)
status_enabledvarchar(8)指明是否啟用約束:啟用、禁用或暫缺。(僅適用于 CHECK 和 FOREIGN KEY 約束。) Status_for_replicationvarchar(19)指明約束是否用于復制。(僅適用于 CHECK 和 FOREIGN KEY 約束。)constrain_keysnvarchar (2078)構成約束的列名?;蛘撸▽τ谀J值和規(guī)則而言)指定義默認值或規(guī)則的文本。
按引用對象返回的其它結果集: 列名數(shù)據(jù)類型描述Table is referenced bynvarchar(516)識別引用表的其它數(shù)據(jù)庫對象。
如果 name 是系統(tǒng)存儲過程或擴展存儲過程,那么 sp_help 將返回此結果集。 列名數(shù)據(jù)類型描述Parameter_namenvarchar(128)存儲過程參數(shù)名。Typenvarchar(128)存儲過程參數(shù)的數(shù)據(jù)類型。Lengthsmallint物理存儲長度(以字節(jié)為單位)。Precint精度(總的數(shù)字位數(shù))。Scaleint小數(shù)點右邊的數(shù)字個數(shù)。Param_ordersmallint參數(shù)的順序。
注釋
sp_help 過程僅在當前數(shù)據(jù)庫中查找對象。
當沒有指定 name 時,sp_helptrigger 列出當前數(shù)據(jù)庫中所有對象的名稱、所有者和對象類型。sp_helptrigger 提供有關觸發(fā)器的信息。
權限
執(zhí)行權限默認授予 public 角色。
示例A. 返回有關所有對象的信息
下面的示例列出有關 sysobjects 中每個對象的信息。
USE masterEXEC sp_help
B. 返回有關單個對象的信息
下面的示例顯示有關 publishers 表的信息。
USE pubsEXEC sp_help publishers
查看存儲過程的相關性
sp_depends
顯示有關數(shù)據(jù)庫對象相關性的信息(例如,依賴表或視圖的視圖和過程,以及視圖或過程所依賴的表和視圖)。
不報告對當前數(shù)據(jù)庫以外對象的引用。
語法
sp_depends [ @objname = ] @#object@#
參數(shù)
[@objname =] @#object@#
被檢查相關性的數(shù)據(jù)庫對象。對象可以是表、視圖、存儲過程或觸發(fā)器。Object 的數(shù)據(jù)類型為 varchar(776),沒有默認值。
返回代碼值
0(成功)或 1(失?。?BR> 結果集
sp_depends 顯示兩個結果集。
下面的結果集顯示 object 所依賴的對象。
列名數(shù)據(jù)類型描述namenvarchar(40)存在相關性的項目名稱。typenvarchar(16)項目類型。updatednvarchar(7)是否更新項目。selectednvarchar(8)項目是否用于 SELECT 語句。columnsysname存在相關性的列或參數(shù)。
下面的結果集顯示依賴 object 的對象。
列名數(shù)據(jù)類型描述namenvarchar(40)存在相關性的項目名稱。typenvarchar(16)項目類型。
注釋
若一個對象引用另一個對象,則認為前者依賴后者。sp_depends 通過查看 sysdepends 表確定相關性。
權限
執(zhí)行權限默認授予 public 角色。
示例
下面的示例列出依賴 Customers 表的數(shù)據(jù)庫對象。
USE NorthwindEXEC sp_depends @#Customers@#
查看關于擴展存儲過程的信息
sp_helpextendedproc
顯示當前定義的擴展存儲過程,以及此過程(函數(shù))所屬動態(tài)鏈接庫的名稱。
語法
sp_helpextendedproc [ [@funcname = ] @#procedure@# ]
參數(shù)
[@funcname =] @#procedure@#
是要顯示其信息的擴展存儲過程的名稱。procedure 的數(shù)據(jù)類型為 sysname,默認值為 NULL。
返回代碼值
0(成功)或 1(失?。?BR> 結果集列名數(shù)據(jù)類型描述namesysname擴展存儲過程的名稱。dllnvarchar(255)動態(tài)鏈接庫的名稱。
注釋
指定 procedure 時,sp_helpextendedproc 報告指定擴展存儲過程的信息。不提供 procedure 時,
sp_helpextendedproc 返回全部擴展存儲過程的名稱,以及每個擴展存儲過程所屬的 DLL 名稱。
權限
執(zhí)行權限默認授予 public 角色。
示例A. 報告所有擴展存儲過程的幫助
下面的示例報告所有擴展存儲過程的信息。
USE masterEXEC sp_helpextendedproc
B. 報告單個擴展存儲過程的幫助
下面的示例報告 xp_cmdshell 擴展存儲過程的信息。
USE masterEXEC sp_helpextendedproc xp_cmdshell

