sp_help (Transact-SQL)
報告有關資料庫物件 (sys.sysobjects 相容性檢視中所列出的任何物件)、使用者定義資料類型或資料類型的資訊。
語法
sp_help [ [ @objname = ] 'name' ]
引數
- [ @objname=] 'name'
這是 sysobjects 或 systypes 資料表中的任何使用者自訂資料類型中之任何物件的名稱。name 是 nvarchar(776),預設值是 NULL。不接受資料庫名稱。
傳回碼值
0 (成功) 或 1 (失敗)
結果集
傳回的結果集會隨著是否指定及何時指定 name,以及它是什麼資料庫物件而不同。
如果執行 sp_help 時,未設定任何引數,就會傳回目前資料庫中所有類型物件的摘要資訊。
資料行名稱
資料類型
說明
名稱
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 會傳回這個結果集,也會根據指定的物件類型傳回其他結果集。
資料行名稱
資料類型
說明
名稱
nvarchar(128)
資料表名稱
Owner
nvarchar(128)
資料表擁有者
型別
nvarchar(31)
資料表類型
Created_datetime
datetime
資料表的建立日期
隨著所指定的資料庫物件而不同,sp_help 會傳回其他結果集。
如果 name 是系統資料表、使用者資料表或檢視,sp_help 會傳回下列結果集。不過,不會傳回描述資料檔在檔案群組中之位置的結果集。
在資料行物件上傳回的其他結果集:
資料行名稱
資料類型
說明
Column_name
nvarchar(128)
資料行名稱。
型別
nvarchar(128)
資料行資料類型。
Computed
varchar(35)
指出是否計算資料行中的值:[是] 或 [否]。
Length
int
資料行長度 (以位元組為單位)。
附註如果資料行資料類型是大數值類型 (varchar(max)、nvarchar(max)、varbinary(max) 或 xml),則此值將會顯示為 -1。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
這個資料行的值所用的遞增。
不適用於複寫
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)
建立索引的資料行名稱。
在條件約束上傳回的其他結果集:
資料行名稱
資料類型
說明
constraint_type
nvarchar(146)
條件約束的類型。
constraint_name
nvarchar(128)
條件約束的名稱。
delete_action
nvarchar(9)
指出 DELETE 動作是:無動作、CASCADE 或 N/A。
只適用於 FOREIGN KEY 條件約束。
update_action
nvarchar(9)
指出 UPDATE 動作是:無動作、串聯或 N/A。SET_NULL 和 SET_DEFAULT 顯示為無動作。
只適用於 FOREIGN KEY 條件約束。
status_enabled
varchar(8)
指出是否啟用條件約束:已啟用、已停用或 N/A。SET_NULL 和 SET_DEFAULT 顯示為無動作。
只適用於 CHECK 和 FOREIGN KEY 條件約束。
status_for_replication
varchar(19)
指出條件約束是否針對複寫。
只適用於 CHECK 和 FOREIGN KEY 條件約束。
constraint_keys
nvarchar(2078)
組成條件約束的資料行名稱,如果是預設值和規則,便是定義預設值或規則的文字。
在進行參考的物件上傳回的其他結果集:
資料行名稱
資料類型
說明
資料表的參考者
nvarchar(516)
識別參考資料表的其他資料庫物件。
在預存程序、函數或擴充預存程序上傳回的其他結果集。
資料行名稱
資料類型
說明
Parameter_name
nvarchar(128)
預存程序參數名稱。
型別
nvarchar(128)
預存程序參數的資料類型。
Length
smallint
最大的實體儲存體長度 (以位元組為單位)。
Prec
int
有效位數或總位數。
Scale
int
小數點右側的位數。
Param_order
smallint
參數的順序。
備註
sp_help 程序只會在目前資料庫中尋找物件。
當未指定 name 時,sp_help 會列出目前資料庫中所有物件的物件名稱、擁有者和物件類型。sp_helptrigger 會提供觸發程序的相關資訊。
sp_help 僅會公開可排序的索引資料行;因此,它不會公開 XML 索引或空間索引的相關資訊。
權限
需要 public 角色中的成員資格。使用者至少必須有 objname 的一個權限。若要檢視資料行條件約束索引鍵、預設值或規則,您必須具有此資料表的 VIEW DEFINITION 權限。
範例
A. 傳回所有物件的相關資訊
下列範例會列出 master 資料庫中每個物件的相關資訊。
USE master;
GO
EXEC sp_help;
GO
B. 傳回單一物件的相關資訊
下列範例會顯示 Person 資料表中 Person 資料行的相關資訊。
USE AdventureWorks2008R2;
GO
EXEC sp_help 'Person.Person';
GO