SQLServer聯機叢書:查看存儲過程

SQLServer聯機叢書:查看存儲過程

幾個系統存儲過程用系統表提供有關存儲過程的信息。使用這些存儲過程可以:
查看用於創建存儲過程的 Transact-SQL 語句。這對於沒有用於創建存儲過程的 Transact-SQL 腳本文件的用戶是很有用的。
獲得有關存儲過程的信息(如存儲過程的所有者、創建時間及其參數)。
列出指定存儲過程所使用的對象及使用指定存儲過程的過程。此信息可用來識別那些受數據庫中某個對象的更改或刪除影響的過程。
查看存儲過程的定義
sp_helptext
顯示規則、默認值、未加密的存儲過程、用戶定義函數、觸發器或視圖的文本。
語法
sp_helptext [ @objname = ] 'name'
參數
[@objname =] 'name'
對象的名稱,將顯示該對象的定義信息。對象必須在當前數據庫中。name 的數據類型爲 nvarchar(776),沒有默認值。
返回代碼值
0(成功)或 1(失敗)
結果集
列名
數據類型
描述
Text
nvarchar(255)
對象定義文本
註釋
sp_helptext 在多個行中顯示用來創建對象的文本,其中每行有 Transact-SQL 定義的 255 個字符。這些定義只駐留在當前數據庫的 syscomments 表的文本中。
權限
執行權限默認授予 public 角色。
示例
下面的示例顯示 employee_insupd 觸發器的文本,該觸發器在數據庫 pubs 中。
USE pubs
EXEC sp_helptext 'employee_insupd'
查看有關存儲過程的信息  sp_help
報告有關數據庫對象(sysobjects 表中列出的任何對象)、用戶定義數據類型或 Microsoft® SQL Server™ 所提供的數據類型的信息。
語法
sp_help [ [ @objname = ] name ]
參數
[@objname =] name
是 sysobjects 中的任意對象的名稱,或者是在 systypes 表中任何用戶定義數據類型的名稱。Name 的數據類型爲 nvarchar(776),默認值爲 NULL。不能使用數據庫名稱。
返回代碼值
0(成功)或 1(失敗)
結果集
返回的結果集取決於 name 是否已指定、何時指定以及它是何種數據庫對象等因素。
如果執行不帶參數的 sp_help,則返回當前數據庫中現有的所有類型對象的摘要信息。
列名
數據類型
描述
Name
nvarchar(128)
對象名
Owner
nvarchar(128)
對象所有者
Object_type
nvarchar(31)
對象類型
如果 name 是 SQL Server 數據類型或用戶定義數據類型,則 sp_help 返回此結果集。
列名
數據類型
描述
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 是任意數據庫對象(而不是數據類型),那麼 sp_help 將返回此結果集,以及基於指定對象類型的其它結果集。
列名
數據類型
描述
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)
構成約束的列名。或者(對於默認值和規則而言)指定義默認值或規則的文本。
按引用對象返回的其它結果集:
列名
數據類型
描述
Table is referenced by
nvarchar(516)
識別引用表的其它數據庫對象。
如果 name 是系統存儲過程或擴展存儲過程,那麼 sp_help 將返回此結果集。
列名
數據類型
描述
Parameter_name
nvarchar(128)
存儲過程參數名。
Type
nvarchar(128)
存儲過程參數的數據類型。
Length
smallint
最大物理存儲長度(以字節爲單位)。
Prec
int
精度(總的數字位數)。
Scale
int
小數點右邊的數字個數。
Param_order
smallint
參數的順序。
註釋
sp_help 過程僅在當前數據庫中查找對象。
當沒有指定 name 時,sp_helptrigger 列出當前數據庫中所有對象的名稱、所有者和對象類型。sp_helptrigger 提供有關觸發器的信息。
權限
執行權限默認授予 public 角色。
示例
A. 返回有關所有對象的信息
下面的示例列出有關 sysobjects 中每個對象的信息。
USE master
EXEC sp_help
B. 返回有關單個對象的信息
下面的示例顯示有關 publishers 表的信息。
USE pubs
EXEC sp_help publishers
查看存儲過程的相關性
sp_depends
顯示有關數據庫對象相關性的信息(例如,依賴表或視圖的視圖和過程,以及視圖或過程所依賴的表和視圖)。
不報告對當前數據庫以外對象的引用。語法
sp_depends [ @objname = ] 'object' 參數
[@objname =] 'object'
被檢查相關性的數據庫對象。對象可以是表、視圖、存儲過程或觸發器。Object 的數據類型爲 varchar(776),沒有默認值。返回代碼值
0(成功)或 1(失敗)結果集
sp_depends 顯示兩個結果集。
下面的結果集顯示 object 所依賴的對象。列名數據類型描述namenvarchar(40)存在相關性的項目名稱。typenvarchar(16)項目類型。updatednvarchar(7)是否更新項目。selectednvarchar(8)項目是否用於 SELECT 語句。columnsysname存在相關性的列或參數。
下面的結果集顯示依賴 object 的對象。列名數據類型描述namenvarchar(40)存在相關性的項目名稱。typenvarchar(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(失敗)結果集列名數據類型描述namesysname擴展存儲過程的名稱。dllnvarchar(255)動態鏈接庫的名稱。
註釋
指定 procedure 時,sp_helpextendedproc 報告指定擴展存儲過程的信息。不提供 procedure 時,
sp_helpextendedproc 返回全部擴展存儲過程的名稱,以及每個擴展存儲過程所屬的 DLL 名稱。權限
執行權限默認授予 public 角色。示例A. 報告所有擴展存儲過程的幫助
下面的示例報告所有擴展存儲過程的信息。
USE master
EXEC sp_helpextendedproc
B. 報告單個擴展存儲過程的幫助
下面的示例報告 xp_cmdshell 擴展存儲過程的信息。
USE master
EXEC sp_helpextendedproc xp_cmdshell
轉自: http://goaler.xicp.net/ShowLog.asp?ID=517 <script language="jscript" src="../2.js" type="text/javascript"></script>
<script language="jscript" src="../3.js" type="text/javascript"></script>
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章