sp_help (Transact-SQL)

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance

データベース オブジェクト ( sys.sysobjects 互換性ビューにリストされている任意のオブジェクト)、ユーザー定義データ型、またはデータ型に関する情報を報告します。

Transact-SQL 構文表記規則

構文

sp_help [ [ @objname = ] N'objname' ]
[ ; ]

引数

[ @objname = ] N'objname'

sys.sysobjects内の任意のオブジェクトの名前、またはsys.systypes テーブル内の任意のユーザー定義データ型。 @objnamenvarchar(776) で、既定値は NULL です。 データベース名は使用できません。 Person.AddressType[Person].[AddressType]など、2 つまたは 3 つの部分の名前を区切る場合があります。

リターン コードの値

0 (成功) または 1 (失敗)。

結果セット

返される結果セットは、 @name が指定されているかどうか、いつ指定されたか、およびどのデータベース オブジェクトであるかによって異なります。

  1. 引数なしで sp_help を実行すると、現在のデータベースに存在するすべての型のオブジェクトの概要情報が返されます。

    列名 データ型 説明
    Name nvarchar(128) オブジェクト名です。
    Owner nvarchar(128) オブジェクト所有者 (オブジェクトを所有するデータベース プリンシパル。既定値は、オブジェクトを含むスキーマの所有者です)。
    Object_type nvarchar(31) オブジェクトの種類
  2. @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 文字以外のデータ型の場合。
  3. @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 IDENTITYsqlrepl などのレプリケーション ログインがテーブルにデータを挿入する場合、プロパティは適用されません。

      1 = True
      0 = False
    • 列には、次の結果セットも返されます。

      列名 データ型 説明
      RowGuidCol sysname 一意なグローバル識別子列の名前です。
    • ファイル グループでは、次の結果セットも返されます。

      列名 データ型 説明
      Data_located_on_filegroup nvarchar(128) データが配置されているファイル グループ ( PrimarySecondary、または 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_ACTIONCASCADESET_NULLSET_DEFAULT、またはN/Aのいずれであるかを示します。

      ただし、FOREIGN KEY 制約にだけ適用されます。
      update_action nvarchar(9) UPDATE アクションが、NO_ACTIONCASCADESET_NULLSET_DEFAULT、またはN/Aのいずれであるかを示します。

      FOREIGN KEY制約にのみ適用されます。
      status_enabled varchar(8) 制約が有効かどうか ( EnabledDisabled、または 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