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 値を許すかどうかを示します。この値は Yes または No です。
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 は次の結果セットを返します。ただし、ビューに対しては、データ ファイルがファイル グループ内のどこに配置されているかを表す結果セットは返されません。
列オブジェクトに関して次の結果セットが返されます。
列名
データ型
説明
列名
nvarchar(128)
列名です。
型
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
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 操作が、No Action、CASCADE、N/A のどれであるかを示します。
ただし、FOREIGN KEY 制約にだけ適用されます。
update_action
nvarchar(9)
UPDATE 操作が、No Action、Cascade、N/A のどれであるかを示します。SET_NULL と SET_DEFAULT は No Action として表示されます。
ただし、FOREIGN KEY 制約にだけ適用されます。
status_enabled
varchar(8)
制約が有効であるかどうかを示します。この値は Enabled、Disabled、N/A のいずれかです。SET_NULL と SET_DEFAULT は No Action として表示されます。
ただし、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)
ストアド プロシージャ パラメーター名です。
型
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 権限が必要です。
使用例
A. すべてのオブジェクトに関する情報を返す
次の例では、master データベースの各オブジェクトに関する情報を一覧表示します。
USE master;
GO
EXEC sp_help;
GO
B. 特定のオブジェクトに関する情報を返す
次の例では、Person テーブルの Person 列に関する情報を表示します。
USE AdventureWorks2008R2;
GO
EXEC sp_help 'Person.Person';
GO