sp_help (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
報告資料庫對象的相關信息(相容性檢視中 sys.sysobjects
所列的任何物件)、使用者定義數據類型或數據類型。
語法
sp_help [ [ @objname = ] N'objname' ]
[ ; ]
引數
[ @objname = ] N'objname'
數據表中 sys.sysobjects
任何物件的名稱,或數據表中的任何 sys.systypes
使用者定義數據類型。 @objname為 nvarchar(776),預設值為 NULL
。 無法接受資料庫名稱。 可以分隔兩或三個部分名稱,例如 Person.AddressType
或 [Person].[AddressType]
。
傳回碼值
0
(成功) 或 1
(失敗)。
結果集
傳回的結果集取決於是否 指定@name 、指定時,以及指定的資料庫物件。
如果沒有
sp_help
自變數執行,則會傳回目前資料庫中所有類型物件的摘要資訊。資料行名稱 資料類型 描述 Name
nvarchar(128) 物件名稱 Owner
nvarchar(128) 對象擁有者 (擁有物件的資料庫主體。預設為包含 對象的架構擁有者。 Object_type
nvarchar(31) Object type 如果 @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
允許值:Yes
或No
。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) 顯示資料列中的值是否計算: Yes
或No
。Length
int 以位元組為單位的數據行長度。
注意:如果數據行數據類型是大型實值型別 (varchar(max)、nvarchar(max)、varbinary(max)或 xml),則值會顯示為-1
。Prec
char(5) 數據行有效位數。 Scale
char(5) 數據行小數字數。 Nullable
varchar(35) 指出資料列中是否 NULL
允許值:Yes
或No
。TrimTrailingBlanks
varchar(35) 修剪尾端空白。 傳回 Yes
或No
。FixedLenNullInSource
varchar(35) 此參數已被取代,而且會維護腳本的回溯相容性。 Collation
sysname 數據行的定序。 NULL
針對非字元數據類型。識別資料列也會傳回下列結果集:
資料行名稱 資料類型 描述 Identity
nvarchar(128) 數據類型宣告為身分識別的數據行名稱。 Seed
numeric 識別數據行的起始值。 Increment
numeric 遞增以用於此數據行中的值。 Not For Replication
int IDENTITY
當復寫登入,例如 sqlrepl,將數據插入數據表時,不會強制執行 屬性:1
= True0
= False下列結果集也會在數據行上傳回:
資料行名稱 資料類型 描述 RowGuidCol
sysname 全域唯一標識碼數據行的名稱。 檔案群組也會傳回下列結果集:
資料行名稱 資料類型 描述 Data_located_on_filegroup
nvarchar(128) 資料所在的檔案群組: Primary
、Secondary
或Transaction Log
。索引上也會傳回下列結果集:
資料行名稱 資料類型 描述 index_name
sysname 索引名稱。 Index_description
varchar(210) 索引的描述。 index_keys
nvarchar(2078) 建立索引的數據行名稱。 傳 NULL
回記憶體優化數據行存放區索引。下列結果集也會在條件約束上傳回:
資料行名稱 資料類型 描述 constraint_type
nvarchar(146) 條件約束的類型。 constraint_name
nvarchar(128) 條件約束的名稱。 delete_action
nvarchar(9) 指出動作是否 DELETE
為、、CASCADE
、SET_NULL
SET_DEFAULT
或N/A
的NO_ACTION
其中一個。
僅適用於FOREIGNKEY條件約束。update_action
nvarchar(9) 指出動作是否 UPDATE
為、、CASCADE
、SET_NULL
SET_DEFAULT
或N/A
的NO_ACTION
其中一個。
僅適用於FOREIGN KEY
條件約束。status_enabled
varchar(8) 顯示是否開啟條件約束: Enabled
、Disabled
或N/A
。
僅適用於CHECK
和FOREIGN KEY
條件約束。status_for_replication
varchar(19) 指出條件約束是否用於複寫。
僅適用於CHECK
和FOREIGN KEY
條件約束。constraint_keys
nvarchar(2078) 組成條件約束的數據行名稱,或者,如果是預設值和規則,則為定義預設或規則的文字。 參考物件上也會傳回下列結果集:
資料行名稱 資料類型 描述 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_help
會列出目前資料庫中所有物件的物件名稱、擁有者和物件類型。 sp_helptrigger
提供觸發程式的相關信息。
sp_help
只公開可排序的索引數據行;因此,它不會公開 XML 索引或空間索引的相關信息。
權限
需要 public 角色的成員資格。 用戶必須至少有一個許可權才能@objname。 若要檢視數據行條件約束索引鍵、預設值或規則,您必須具有 VIEW DEFINITION
數據表的許可權。
範例
本文 Transact-SQL 程式碼範例使用 AdventureWorks2022
或 AdventureWorksDW2022
範例資料庫,從 Microsoft SQL Server Samples 和 Community Projects (Microsoft SQL Server 範例和社群專案)首頁即可下載。
A. 傳回所有對象的相關信息
下列範例會列出資料庫中每個對象 master
的相關信息。
USE master;
GO
EXEC sp_help;
GO
B. 傳回單一對象的相關信息
下列範例會顯示數據表的相關信息 Person.Person
。
USE AdventureWorks2022;
GO
EXEC sp_help 'Person.Person';
GO