COLUMNPROPERTY (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 = 入力は無効
StatisticalSemantics
列でセマンティック インデックス作成が有効になっています。
1 = TRUE
0 = FALSE
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 が返されます。
ユーザーが所有しているか、または権限を与えられている、セキュリティ保護可能なリソースのメタデータのみを表示できます。 つまり、オブジェクトに対する権限がユーザーに与えられていない場合、メタデータを生成する組み込み関数 (COLUMNPROPERTY など) が NULL を返す可能性があります。 詳細については、「メタデータ表示の構成」を参照してください。
説明
列の決定的なプロパティを調べるときは、まず、その列が計算列であるかどうかをテストします。 計算列でない場合は、IsDeterministic によって NULL が返されます。 計算列は、インデックス列として指定できます。
使用例
次の例では、LastName 列の長さを返します。
USE AdventureWorks2012;
GO
SELECT COLUMNPROPERTY( OBJECT_ID('Person.Person'),'LastName','PRECISION')AS 'Column Length';
GO
以下に結果セットを示します。
Column Length
-------------
50