適用於:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric 中的 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自變數執行,則會傳回目前資料庫中所有類型物件的摘要資訊。資料行名稱 資料類型 描述 Namenvarchar(128) 物件名稱 Ownernvarchar(128) 對象擁有者 (擁有物件的資料庫主體。預設為包含 對象的架構擁有者。 Object_typenvarchar(31) 物件類型 如果 @name 是 SQL Server 數據類型或使用者定義數據類型,
sp_help則傳回此結果集。資料行名稱 資料類型 描述 Type_namenvarchar(128) 數據類型名稱。 Storage_typenvarchar(128) SQL Server 類型名稱。 Lengthsmallint 數據類型的實體長度(以位元組為單位)。 Precint 有效位數(位數總數)。 Scaleint 小數點右邊的數位數。 Nullablevarchar(35) 指出是否 NULL允許值:Yes或No。Default_namenvarchar(128) 系結至此類型之預設的名稱。
NULL= 未系結預設值。Rule_namenvarchar(128) 系結至此類型之規則的名稱。
NULL= 未系結預設值。Collationsysname 數據類型的定序。 NULL針對非字元數據類型。如果 @name 是數據類型以外的任何資料庫物件,
sp_help則根據指定的物件類型,傳回此結果集和其他結果集。資料行名稱 資料類型 描述 Namenvarchar(128) 資料表名稱 Ownernvarchar(128) 數據表擁有者 Typenvarchar(31) 資料表類型 Created_datetimedatetime 建立日期數據表 根據指定的資料庫對象,
sp_help傳回其他結果集。如果 @name 是系統數據表、用戶數據表或檢視表,
sp_help則會傳回下列結果集。 不過,描述數據檔位於檔案群組上的位置的結果集不會針對檢視傳回。下列結果集也會在資料行物件上傳回:
資料行名稱 資料類型 描述 Column_namenvarchar(128) 資料行名稱。 Typenvarchar(128) 數據行數據類型。 Computedvarchar(35) 顯示資料列中的值是否計算: Yes或No。Lengthint 以位元組為單位的數據行長度。
注意:如果數據行數據類型是大型實值型別 (varchar(max)、nvarchar(max)、varbinary(max)或 xml),則值會顯示為-1。Precchar(5) 數據行有效位數。 Scalechar(5) 數據行小數字數。 Nullablevarchar(35) 指出資料列中是否 NULL允許值:Yes或No。TrimTrailingBlanksvarchar(35) 修剪尾端空白。 傳回 Yes或No。FixedLenNullInSourcevarchar(35) 此參數已被取代,而且會維護腳本的回溯相容性。 Collationsysname 數據行的定序。 NULL針對非字元數據類型。識別資料列也會傳回下列結果集:
資料行名稱 資料類型 描述 Identitynvarchar(128) 數據類型宣告為身分識別的數據行名稱。 Seednumeric 識別數據行的起始值。 Incrementnumeric 遞增以用於此數據行中的值。 Not For Replicationint IDENTITY當復寫登入,例如 sqlrepl,將數據插入數據表時,不會強制執行 屬性:
1= 正確
0= 錯誤下列結果集也會在數據行上傳回:
資料行名稱 資料類型 描述 RowGuidColsysname 全域唯一標識碼數據行的名稱。 檔案群組也會傳回下列結果集:
資料行名稱 資料類型 描述 Data_located_on_filegroupnvarchar(128) 資料所在的檔案群組: Primary、Secondary或Transaction Log。索引上也會傳回下列結果集:
資料行名稱 資料類型 描述 index_namesysname 索引名稱。 Index_descriptionvarchar(210) 索引的描述。 index_keysnvarchar(2078) 建立索引的數據行名稱。 傳 NULL回記憶體優化數據行存放區索引。下列結果集也會在條件約束上傳回:
資料行名稱 資料類型 描述 constraint_typenvarchar(146) 條件約束的類型。 constraint_namenvarchar(128) 條件約束的名稱。 delete_actionnvarchar(9) 指出動作是否 DELETE為、、NO_ACTION、CASCADESET_NULL或SET_DEFAULT的N/A其中一個。
僅適用於FOREIGNKEY條件約束。update_actionnvarchar(9) 指出動作是否 UPDATE為、、NO_ACTION、CASCADESET_NULL或SET_DEFAULT的N/A其中一個。
僅適用於FOREIGN KEY條件約束。status_enabledvarchar(8) 顯示是否開啟條件約束: Enabled、Disabled或N/A。
僅適用於CHECK和FOREIGN KEY條件約束。status_for_replicationvarchar(19) 指出條件約束是否用於複寫。
僅適用於CHECK和FOREIGN KEY條件約束。constraint_keysnvarchar(2078) 組成條件約束的數據行名稱,或者,如果是預設值和規則,則為定義預設或規則的文字。 參考物件上也會傳回下列結果集:
資料行名稱 資料類型 描述 Table is referenced bynvarchar(516) 識別參考數據表的其他資料庫物件。 預存程式、函式或擴充預存程式也會傳回下列結果集。
資料行名稱 資料類型 描述 Parameter_namenvarchar(128) 預存程序參數名稱。 Typenvarchar(128) 預存程序參數的數據類型。 Lengthsmallint 實體記憶體長度上限,以位元組為單位。 Precint 有效位數或數字總數。 Scaleint 小數點右邊的數位數。 Param_ordersmallint 參數的順序。
備註
此 sp_help 程式只會尋找目前資料庫中的物件。
未指定@name時,sp_help會列出目前資料庫中所有物件的物件名稱、擁有者和物件類型。
sp_helptrigger 提供觸發程式的相關信息。
sp_help 只公開可排序的索引數據行;因此,它不會公開 XML 索引或空間索引的相關信息。
權限
需要 public 角色的成員資格。 用戶必須至少有一個許可權才能@objname。 若要檢視數據行條件約束索引鍵、預設值或規則,您必須具有 VIEW DEFINITION 數據表的許可權。
範例
本文中的程式代碼範例會使用 AdventureWorks2025 或 AdventureWorksDW2025 範例資料庫,您可以從 Microsoft SQL Server 範例和社群專案 首頁下載。
A. 傳回所有對象的相關信息
下列範例會列出資料庫中每個對象 master 的相關信息。
USE master;
GO
EXECUTE sp_help;
GO
B. 傳回單一對象的相關信息
下列範例會顯示數據表的相關信息 Person.Person 。
USE AdventureWorks2022;
GO
EXECUTE sp_help 'Person.Person';
GO