COLUMNS (Transact-SQL)

現在のデータベースの現在のユーザーがアクセスできる列ごとに 1 行のデータを返します。

このビューから情報を取得するには、INFORMATION_SCHEMA.view_name の完全修飾名を指定します。

列名

データ型

説明

TABLE_CATALOG

nvarchar(128)

テーブル修飾子。

TABLE_SCHEMA

nvarchar(128)

テーブルを含むスキーマの名前。

重要な注意事項重要
オブジェクトのスキーマを判定するのに INFORMATION_SCHEMA ビューを使用しないでください。オブジェクトのスキーマを調べる唯一の信頼性のある方法は、sys.objects カタログ ビューに対するクエリを実行する方法です。

TABLE_NAME

nvarchar(128)

テーブル名。

COLUMN_NAME

nvarchar(128)

列名。

ORDINAL_POSITION

int

列の識別番号。

COLUMN_DEFAULT

nvarchar(4000)

列の既定値。

SQL Server 2008 では、SQL 式をデコードしてカタログ メタデータに格納する方法が SQL Server 2000 と異なります。デコードされた式のセマンティクスは元のテキストと同じですが、構文も同じであるとは限りません。たとえば、デコードされた式からは空白文字が削除されます。詳細については、「SQL Server 2008 R2 におけるデータベース エンジン機能の動作の変更」を参照してください。

IS_NULLABLE

varchar(3)

列の NULL 値の許容属性。許容される場合は YES、許容されない場合は NO が返されます。

DATA_TYPE

nvarchar(128)

システム提供のデータ型。

CHARACTER_MAXIMUM_LENGTH

int

バイナリ データ、文字データ、またはテキスト/イメージ データの最大長 (文字単位)。

xml と、大きな値のデータ型では -1 です。それ以外の場合は NULL が返されます。詳細については、「データ型 (Transact-SQL)」を参照してください。

CHARACTER_OCTET_LENGTH

int

バイナリ データ、文字データ、またはテキスト/イメージ データの最大長 (バイト単位)。

xml、および大きな値のデータ型の場合は -1 になります。それ以外の場合は NULL が返されます。

NUMERIC_PRECISION

tinyint

概数データ、真数データ、整数データ、または通貨データの有効桁数。それ以外の場合は NULL が返されます。

NUMERIC_PRECISION_RADIX

smallint

概数データ、真数データ、整数データ、または通貨データの有効桁数の基数。それ以外の場合は NULL が返されます。

NUMERIC_SCALE

int

概数データ、真数データ、整数データ、または通貨データの小数点以下桁数。それ以外の場合は NULL が返されます。

DATETIME_PRECISION

smallint

datetime および ISO interval データ型のサブタイプ コード。他のデータ型の場合は NULL が返されます。

CHARACTER_SET_CATALOG

nvarchar(128)

master が返されます。列が文字データまたは text の場合、これは文字セットが位置しているデータベースを表します。それ以外の場合は NULL が返されます。

CHARACTER_SET_SCHEMA

nvarchar(128)

常に NULL が返されます。

CHARACTER_SET_NAME

nvarchar(128)

列が文字データまたは text 型の場合、文字セットの一意な名前が返されます。それ以外の場合は NULL が返されます。

COLLATION_CATALOG

nvarchar(128)

常に NULL が返されます。

COLLATION_SCHEMA

nvarchar(128)

常に NULL が返されます。

COLLATION_NAME

nvarchar(128)

列が文字データまたは text 型の場合、照合順序の一意な名前が返されます。それ以外の場合は NULL が返されます。

DOMAIN_CATALOG

nvarchar(128)

列が別名データ型の場合、この列はユーザー定義のデータ型が作成されたデータベースの名前になります。それ以外の場合は NULL が返されます。

DOMAIN_SCHEMA

nvarchar(128)

列がユーザー定義のデータ型の場合、この列にはユーザー定義のデータ型のスキーマ名が返されます。それ以外の場合は NULL が返されます。

重要な注意事項重要
データ型のスキーマを判定するのに INFORMATION_SCHEMA ビューを使用しないでください。型のスキーマを調べる唯一の信頼性のある方法は、TYPEPROPERTY 関数を使用する方法です。

DOMAIN_NAME

nvarchar(128)

列がクエリ アナライザーの場合、この列はクエリ アナライザーの名前になります。それ以外の場合は NULL が返されます。

説明

INFORMATION_SCHEMA.COLUMNS ビューの ORDINAL_POSITION 列は、COLUMNS_UPDATED 関数によって返される列のビット パターンと互換性がありません。COLUMN_UPDATED と互換性があるビット パターンを取得するには、INFORMATION_SCHEMA.COLUMNS ビューをクエリするときに、COLUMNPROPERTY システム関数の ColumnID プロパティを参照する必要があります。次に例を示します。

USE AdventureWorks2008R2;
GO
SELECT TABLE_NAME, COLUMN_NAME, COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'ColumnID') AS COLUMN_ID
FROM AdventureWorks2008R2.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Person';
GO