COLUMNPROPERTY (Transact-SQL)

列またはパラメーターに関する情報を返します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

COLUMNPROPERTY ( id , column , property ) 

引数

  • id
    テーブルまたはプロシージャの識別子 (ID) を含むです。

  • column
    列またはパラメーターの名前を含む式です。

  • property
    id として返される情報を含む式を指定します。次のいずれかの値を指定できます。

    説明

    戻り値

    AllowsNull

    NULL 値を許可します。

    1 = TRUE

    0 = FALSE

    NULL = 無効な入力

    ColumnId

    sys.columns.column_id に対応する列の ID 値です。

    列 ID

    注意
    複数の列に対してクエリを実行する場合、列の ID 値の順序にギャップが生じることがあります。

    FullTextTypeColumn

    column のドキュメント型情報を保持する、テーブル内の TYPE COLUMN です。

    このプロパティの 2 番目のパラメーターとして渡される列の、フルテキストの TYPE COLUMN の ID です。

    IsComputed

    列は計算列です。

    1 = TRUE

    0 = FALSE

    NULL = 無効な入力

    IsCursorType

    プロシージャ パラメーターは CURSOR 型です。

    1 = TRUE

    0 = FALSE

    NULL = 無効な入力

    IsDeterministic

    列は決定的です。このプロパティは、計算列およびビュー列にのみ適用されます。

    1 = TRUE

    0 = FALSE

    NULL = 無効な入力 (計算列またはビュー列ではありません)

    IsFulltextIndexed

    列はフルテキスト インデックス作成用に登録されています。

    1 = TRUE

    0 = FALSE

    NULL = 無効な入力

    IsIdentity

    列で IDENTITY プロパティを使用します。

    1 = TRUE

    0 = FALSE

    NULL = 入力は無効

    IsIdNotForRepl

    列で IDENTITY_INSERT の設定が確認されます。

    1 = TRUE

    0 = FALSE

    NULL = 無効な入力

    IsIndexable

    列にインデックスを作成できます。

    1 = TRUE

    0 = FALSE

    NULL = 無効な入力

    IsOutParam

    プロシージャ パラメーターは出力パラメーターです。

    1 = TRUE

    0 = FALSE NULL = 無効な入力

    IsPrecise

    列は正確です。このプロパティは、決定的な列に対してのみ適用されます。

    1 = TRUE

    0 = FALSE NULL = 無効な入力 (決定的な列ではありません)

    IsRowGuidCol

    列は uniqueidentifier 型であり、ROWGUIDCOL プロパティで定義されています。

    1 = TRUE

    0 = FALSE

    NULL = 無効な入力

    IsSystemVerified

    列の決定性のプロパティと有効桁数のプロパティは、データベース エンジンで確認できます。このプロパティは、計算列およびビュー列にのみ適用されます。

    1 = TRUE

    0 = FALSE

    NULL = 無効な入力

    IsXmlIndexable

    XML 列は XML インデックスで使用できます。

    1 = TRUE

    0 = FALSE

    NULL = 無効な入力

    Precision

    列またはパラメーターのデータ型の長さです。

    指定した列のデータ型の長さ

    -1 = xml または大きい値の型

    NULL = 無効な入力

    Scale

    列またはパラメーターのデータ型の小数点以下桁数です。

    小数点以下桁数

    NULL = 無効な入力

    SystemDataAccess

    列は SQL Server のシステム カタログまたは仮想システム テーブルのデータにアクセスする関数から派生します。このプロパティは、計算列およびビュー列にのみ適用されます。

    1 = TRUE (読み取り専用アクセス)

    0 = FALSE

    NULL = 無効な入力

    UserDataAccess

    列は SQL Server のローカル インスタンスに格納されている、ビュー テーブルおよび一時テーブルを含むユーザー テーブル内のデータにアクセスする関数から派生します。このプロパティは、計算列およびビュー列にのみ適用されます。

    1 = TRUE (読み取り専用アクセス)

    0 = FALSE

    NULL = 無効な入力

    UsesAnsiTrim

    テーブルが最初に作成されたときに、ANSI_PADDING が ON に設定されました。このプロパティは、char 型または varchar 型の列またはパラメーターにのみ適用されます。

    1 = TRUE

    0 = FALSE

    NULL = 無効な入力

    IsSparse

    列はスパース列です。詳細については、「スパース列の使用」を参照してください。

    1 = TRUE

    0 = FALSE

    NULL = 無効な入力

    IsColumnSet

    列は列セットです。詳細については、「列セットの使用」を参照してください。

    1 = TRUE

    0 = FALSE

    NULL = 無効な入力

戻り値の型

int

例外

エラーが発生した場合、または呼び出し元にオブジェクトの表示権限がない場合は、NULL が返されます。

SQL Server 2008 では、そのユーザーが所有しているか、または権限を与えられている、セキュリティ保護可能なアイテムのメタデータのみを表示できます。つまり、オブジェクトに対する権限がユーザーに与えられていない場合、メタデータを生成する組み込み関数 (COLUMNPROPERTY など) が NULL を返す可能性があります。詳細については、「メタデータ表示の構成」および「メタデータ表示のトラブルシューティング」を参照してください。

説明

列の決定的なプロパティを調べるときは、まず、その列が計算列であるかどうかをテストします。計算列でない場合は、IsDeterministic によって NULL が返されます。計算列は、インデックス列として指定できます。

次の例では、LastName 列の長さを返します。

USE AdventureWorks2008R2;
GO
SELECT COLUMNPROPERTY( OBJECT_ID('Person.Person'),'LastName','PRECISION')AS 'Column Length';
GO

以下に結果セットを示します。

Column Length 
------------- 
50

(1 row(s) affected)