COLUMNS (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric の SQL エンドポイントMicrosoft Fabric のウェアハウス

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

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

列名 データ型 説明
TABLE_CATALOG nvarchar(128) テーブルの修飾子。
TABLE_SCHEMA nvarchar(128) テーブルを含むスキーマの名前。

重要: オブジェクトのスキーマを決定するために、INFORMATION_SCHEMA ビューを使わないでください。 INFORMATION_SCHEMA ビューが表すのは、オブジェクトのメタデータのサブセットのみです。 オブジェクトのスキーマを調べるための信頼できる唯一の方法は、sys.objects カタログ ビューのクエリを実行することです。
TABLE_NAME nvarchar(128) テーブル名。
COLUMN_NAME nvarchar(128) 列名。
ORDINAL_POSITION int 列の識別番号。
COLUMN_DEFAULT nvarchar(4000) 列の既定値です。
IS_NULLABLE varchar(3) 列に NULL 値が許容されるかどうかを指定します。 この列に 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 関数から返される列のビット パターンとの互換性がありません。 COLUMNS_UPDATED と互換性があるビット パターンを取得するには、INFORMATION_SCHEMA.COLUMNS ビューをクエリするときに、COLUMNPROPERTY システム関数の ColumnID プロパティを参照する必要があります。 次に例を示します。

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

参照