sp_help (Transact-SQL)
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
データベース オブジェクト ( sys.sysobjects
互換性ビューにリストされている任意のオブジェクト)、ユーザー定義データ型、またはデータ型に関する情報を報告します。
構文
sp_help [ [ @objname = ] N'objname' ]
[ ; ]
引数
[ @objname = ] N'objname'
sys.sysobjects
内の任意のオブジェクトの名前、またはsys.systypes
テーブル内の任意のユーザー定義データ型。 @objname は nvarchar(776) で、既定値は NULL
です。 データベース名は使用できません。 Person.AddressType
や[Person].[AddressType]
など、2 つまたは 3 つの部分の名前を区切る場合があります。
リターン コードの値
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 10 進数の右側の桁数。 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
非文字データ型の場合。ID 列には、次の結果セットも返されます。
列名 データ型 説明 Identity
nvarchar(128) データ型が ID として宣言されている列名。 Seed
numeric ID 列の開始値。 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
アクションが、NO_ACTION
、CASCADE
、SET_NULL
、SET_DEFAULT
、またはN/A
のいずれであるかを示します。
ただし、FOREIGN KEY 制約にだけ適用されます。update_action
nvarchar(9) UPDATE
アクションが、NO_ACTION
、CASCADE
、SET_NULL
、SET_DEFAULT
、またはN/A
のいずれであるかを示します。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に対して少なくとも 1 つのアクセス許可を持っている必要があります。 列制約キー、既定値、または規則を表示するには、テーブルに対する VIEW DEFINITION
権限が必要です。
例
この記事の Transact-SQL コード サンプルは AdventureWorks2022
または AdventureWorksDW2022
サンプル データベースを使用します。このサンプル データベースは、Microsoft SQL Server サンプルとコミュニティ プロジェクトのホーム ページからダウンロードできます。
A. すべてのオブジェクトに関する情報を返す
次の例では、 master
データベース内の各オブジェクトに関する情報を一覧表示します。
USE master;
GO
EXEC sp_help;
GO
B. 1 つのオブジェクトに関する情報を返す
次の例では、 Person.Person
テーブルに関する情報を表示します。
USE AdventureWorks2022;
GO
EXEC sp_help 'Person.Person';
GO