幾個系統存儲過程用系統表提供有關存儲過程的信息。使用這些存儲過程可以:
顯示規則、默認值、未加密的存儲過程、用戶定義函數、觸發器或視圖的文本。
sp_helptext [ @objname = ] 'name'
[@objname =] 'name'
對象的名稱,將顯示該對象的定義信息。對象必須在當前數據庫中。name 的數據類型為 nvarchar(776),沒有默認值。
0(成功)或 1(失?。?/P>
列名 | 數據類型 | 描述 |
---|---|---|
Text | nvarchar(255) | 對象定義文本 |
sp_helptext 在多個行中顯示用來創建對象的文本,其中每行有 Transact-SQL 定義的 255 個字符。這些定義只駐留在當前數據庫的 syscomments 表的文本中。
執行權限默認授予 public 角色。
下面的示例顯示 employee_insupd 觸發器的文本,該觸發器在數據庫 pubs 中。
USE pubs EXEC sp_helptext 'employee_insupd'
報告有關數據庫對象(sysobjects 表中列出的任何對象)、用戶定義數據類型或 Microsoft® SQL Server™ 所提供的數據類型的信息。
sp_help [ [ @objname = ] name ]
[@objname =] name
是 sysobjects 中的任意對象的名稱,或者是在 systypes 表中任何用戶定義數據類型的名稱。Name 的數據類型為 nvarchar(776),默認值為 NULL。不能使用數據庫名稱。
0(成功)或 1(失?。?/P>
返回的結果集取決于 name 是否已指定、何時指定以及它是何種數據庫對象等因素。
列名 | 數據類型 | 描述 |
---|---|---|
Name | nvarchar(128) | 對象名 |
Owner | nvarchar(128) | 對象所有者 |
Object_type | nvarchar(31) | 對象類型 |
列名 | 數據類型 | 描述 |
---|---|---|
Type_name | nvarchar(128) | 數據類型名稱。 |
Storage_type | nvarchar(128) | SQL Server 類型名稱。 |
Length | smallint | 數據類型的物理長度(以字節為單位)。 |
Prec | int | 精度(總的數字位數)。 |
Scale | int | 小數點右邊的數字位數。 |
Nullable | varchar(35) | 指明是否允許 NULL 值:是或否。 |
Default_name | nvarchar(128) | 綁定到該類型的默認值名稱。如果沒有綁定默認值,則為 NULL。 |
Rule_name | nvarchar(128) | 綁定到該類型的規則名稱。如果沒有綁定默認值,則為 NULL。 |
Collation | sysname | 數據類型的排序規則。如果是非字符數據類型,則為 NULL。 |
列名 | 數據類型 | 描述 |
---|---|---|
Name | nvarchar(128) | 表名 |
Owner | nvarchar(128) | 表的所有者 |
Type | nvarchar(31) | 表的類型 |
Created_datetime | datetime | 創建的日期表 |
根據指定的數據庫對象,sp_help 返回其它結果集。
如果 name 是系統表、用戶表或者視圖,則 sp_help 返回這些結果集(例外,對于視圖,不返回描述數據文件在文件組中所處位置的結果集)。
列名 | 數據類型 | 描述 |
---|---|---|
Column_name | nvarchar(128) | 列名。 |
Type | nvarchar(128) | 列數據類型。 |
Computed | varchar(35) | 指出是否計算了在列中的值:(是或否)。 |
Length | int | 以字節為單位的列長度。 |
Prec | char(5) | 列精度。 |
Scale | char(5) | 列數值范圍。 |
Nullable | varchar(35) | 指出在列中是否允許 NULL 值:是或否。 |
TrimTrailingBlanks | varchar(35) | 剪裁尾隨空格(是或否)。 |
FixedLenNullInSource | varchar(35) | 只是為了向后兼容。 |
Collation | sysname | 列的排序規則。如果是非字符數據類型,則為 NULL。 |
列名 | 數據類型 | 描述 |
---|---|---|
Identity | nvarchar(128) | 其數據類型被聲明為標識的列名。 |
Seed | numeric | 標識列的起始值。 |
Increment | numeric | 此列中的值所使用的增量。 |
Not For Replication | int | 當重復登錄(例如 sqlrepl)試圖在表中插入數據時,無法強制使用 IDENTITY 屬性: 1 = True 0 = False |
列名 | 數據類型 | 描述 |
---|---|---|
RowGuidCol | sysname | 全局唯一標識符列的名稱。 |
列名 | 數據類型 | 描述 |
---|---|---|
Data_located_on_filegroup | nvarchar(128) | 數據所在的文件組(主要文件組、次要文件組或事務日志)。 |
列名 | 數據類型 | 描述 |
---|---|---|
index_name | sysname | 索引名。 |
index_description | varchar(210) | 索引的描述。 |
index_keys | nvarchar(2078) | 生成索引所在列的列名。 |
列名 | 數據類型 | 描述 |
---|---|---|
constrain_type | nvarchar(146) | 約束的類型。 |
constrain_name | nvarchar(128) | 約束名。 |
delete_action | nvarchar(9) | 指明 DELETE 操作是:無操作、層疊或暫缺。
(僅適用于 FOREIGN KEY 約束。) |
update_action | nvarchar(9) | 指明 UPDATE 操作是:無操作、層疊或暫缺。
(僅適用于 FOREIGN KEY 約束。) |
status_enabled | varchar(8) | 指明是否啟用約束:啟用、禁用或暫缺。(僅適用于 CHECK 和 FOREIGN KEY 約束。) |
Status_for_replication | varchar(19) | 指明約束是否用于復制。(僅適用于 CHECK 和 FOREIGN KEY 約束。) |
constrain_keys | nvarchar(2078) | 構成約束的列名?;蛘撸▽τ谀J值和規則而言)指定義默認值或規則的文本。 |
列名 | 數據類型 | 描述 |
---|---|---|
Table is referenced by | nvarchar(516) | 識別引用表的其它數據庫對象。 |
列名 | 數據類型 | 描述 |
---|---|---|
Parameter_name | nvarchar(128) | 存儲過程參數名。 |
Type | nvarchar(128) | 存儲過程參數的數據類型。 |
Length | smallint | 最大物理存儲長度(以字節為單位)。 |
Prec | int | 精度(總的數字位數)。 |
Scale | int | 小數點右邊的數字個數。 |
Param_order | smallint | 參數的順序。 |
sp_help 過程僅在當前數據庫中查找對象。
當沒有指定 name 時,sp_helptrigger 列出當前數據庫中所有對象的名稱、所有者和對象類型。sp_helptrigger 提供有關觸發器的信息。
執行權限默認授予 public 角色。
下面的示例列出有關 sysobjects 中每個對象的信息。
USE master EXEC sp_help
下面的示例顯示有關 publishers 表的信息。
USE pubs EXEC sp_help publishers
顯示有關數據庫對象相關性的信息(例如,依賴表或視圖的視圖和過程,以及視圖或過程所依賴的表和視圖)。
不報告對當前數據庫以外對象的引用。語法
sp_depends [ @objname = ] 'object'
參數
[@objname =] 'object'
被檢查相關性的數據庫對象。對象可以是表、視圖、存儲過程或觸發器。Object 的數據類型為 varchar(776),沒有默認值。
返回代碼值
0(成功)或 1(失?。?/P>
結果集
sp_depends 顯示兩個結果集。
下面的結果集顯示 object 所依賴的對象。
列名 | 數據類型 | 描述 |
---|---|---|
name | nvarchar(40) | 存在相關性的項目名稱。 |
type | nvarchar(16) | 項目類型。 |
updated | nvarchar(7) | 是否更新項目。 |
selected | nvarchar(8) | 項目是否用于 SELECT 語句。 |
column | sysname | 存在相關性的列或參數。 |
下面的結果集顯示依賴 object 的對象。
列名 | 數據類型 | 描述 |
---|---|---|
name | nvarchar(40) | 存在相關性的項目名稱。 |
type | nvarchar(16) | 項目類型。 |
若一個對象引用另一個對象,則認為前者依賴后者。sp_depends 通過查看 sysdepends 表確定相關性。
執行權限默認授予 public 角色。
下面的示例列出依賴 Customers 表的數據庫對象。
USE Northwind EXEC sp_depends 'Customers'
查看關于擴展存儲過程的信息
sp_helpextendedproc
顯示當前定義的擴展存儲過程,以及此過程(函數)所屬動態鏈接庫的名稱。
語法
sp_helpextendedproc [ [@funcname = ] 'procedure' ]
參數
[@funcname =] 'procedure'
是要顯示其信息的擴展存儲過程的名稱。procedure 的數據類型為 sysname,默認值為 NULL。
返回代碼值
0(成功)或 1(失?。?/P>
結果集
列名 | 數據類型 | 描述 |
---|---|---|
name | sysname | 擴展存儲過程的名稱。 |
dll | nvarchar(255) | 動態鏈接庫的名稱。 |
指定 procedure 時,sp_helpextendedproc 報告指定擴展存儲過程的信息。不提供 procedure 時,
sp_helpextendedproc 返回全部擴展存儲過程的名稱,以及每個擴展存儲過程所屬的 DLL 名稱。
執行權限默認授予 public 角色。
下面的示例報告所有擴展存儲過程的信息。
USE master EXEC sp_helpextendedproc
下面的示例報告 xp_cmdshell 擴展存儲過程的信息。
USE master EXEC sp_helpextendedproc xp_cmdshell
轉自: http://goaler.xicp.net/ShowLog.asp?ID=517