sys.columns (Transact-SQL)

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

ビューやテーブルなど列を含むオブジェクトの各列の行を返します。 以下に、列を持つオブジェクトの種類の一覧を示します。

  • テーブル値アセンブリ関数 (FT)

  • インライン テーブル値 SQL 関数 (IF)

  • 内部テーブル (IT)

  • システム テーブル (S)

  • テーブル値 SQL 関数 (TF)

  • ユーザー テーブル (U)

  • ビュー (V)

列名 データ型 説明
object_id int この列が所属するオブジェクトの ID。
name sysname 列の名前です。 オブジェクト内で一意です。
column_id int 列の ID。 オブジェクト内で一意です。

列 ID は、シーケンシャルではない可能性があります。
system_type_id tinyint 列のシステム型の ID。
user_type_id int ユーザーによって定義された列の型の ID。

型の名前を返すには、この列の sys.types カタログ ビューに結合します。
max_length smallint 列の最大長 (バイト単位) です。

-1 = 列のデータ型は、varchar(max)nvarchar(max)varbinary(max)、または xml です。

textntext、および image 列では、max_length 値は 16 (16 バイトのポインターのみに相当) または sp_tableoption の "text in row" によって設定される値です。
精度 tinyint 数値ベースの場合は、列の有効桁数です。それ以外の場合は、0 です。
scale tinyint 数値ベースの場合は、列の小数点以下桁数です。それ以外の場合は、0 です。
collation_name sysname 文字ベースの場合は、列の照合順序の名前です。それ以外の場合は、NULL です。
is_nullable bit 1 = 列で NULL 値を使用できます。
is_ansi_padded bit 1 = 列で ANSI_PADDING ON 動作を使用します (文字、バイナリ、または変数の場合)。

0 = 列は文字、バイナリ、またはバリアントではありません。
is_rowguidcol bit 1 = 列は宣言された ROWGUIDCOL です。
is_identity bit 1 = 列に ID 値があります。
is_computed bit 1 = 列は計算列です。
is_filestream bit 1 = 列は FILESTREAM 列です。
is_replicated bit 1 = 列はレプリケートされています。
is_non_sql_subscribed bit 1 = 列に SQL Server 以外のサブスクライバーがあります。
is_merge_published bit 1 = 列はマージ パブリッシュ済みです。
is_dts_replicated bit 1 = 列は SSIS を使用してレプリケートされています。
is_xml_document bit 1 = 内容は完全な XML ドキュメントです。

0 = 内容がドキュメントの一部であるか、列のデータ型が xml ではありません。
xml_collection_id int 列のデータ型が xml で XML が型指定されている場合は、ゼロ以外の値です。 この値は、列の検証 XML スキーマ名前空間を含むコレクションの ID となります。

0 = XML スキーマ コレクションはありません。
default_object_id int 既定のオブジェクトの ID です。スタンドアロン オブジェクトの sys.sp_bindefault であるか、インラインの列レベルの DEFAULT 制約であるかは関係ありません。 インラインの列レベルの既定のオブジェクトの parent_object_id 列は、テーブル自体への参照です。

0 = 既定値はありません。
rule_object_id int sys.sp_bindrule を使用して列にバインドされるスタンドアロン ルールの ID です。

0 = スタンドアロン ルールはありません。 列レベルの CHECK 制約については、「sys.check_constraints (Transact-SQL)」を参照してください。
is_sparse bit 1 = 列はスパース列です。 詳細については、「 スパース列の使用」を参照してください。
is_column_set bit 1 = 列は列セットです。 詳細については、「 スパース列の使用」を参照してください。
generated_always_type tinyint 適用対象: SQL Server 2016 (13.x) 以降、SQL Database。 5、6、7、8 は、SQL Database にのみ適用されます。

列の値が生成されるタイミングを識別します (システム テーブル内の列では、常に 0 となります)。

0 = NOT_APPLICABLE
1 = AS_ROW_START
2 = AS_ROW_END
5 = AS_TRANSACTION_ID_START
6 = AS_TRANSACTION_ID_END
7 = AS_SEQUENCE_NUMBER_START
8 = AS_SEQUENCE_NUMBER_END

詳細については、テンポラル テーブル (リレーショナル データベース) に関する記事を参照してください。
generated_always_type_desc nvarchar(60) 適用対象: SQL Server 2016 (13.x) 以降、SQL Database。

's 値の generated_always_typeテキスト記述 (システム テーブル内の列の場合は常にNOT_APPLICABLE)

NOT_APPLICABLE
AS_ROW_START
AS_ROW_END

適用対象: SQL Server 2022 (16.x) 以降、SQL Database

AS_TRANSACTION_ID_START
AS_TRANSACTION_ID_END
AS_SEQUENCE_NUMBER_START
AS_SEQUENCE_NUMBER_END
encryption_type int 適用対象: SQL Server 2016 (13.x) 以降、SQL Database。

暗号化の種類:

1 = 決定論的な暗号化

2 = ランダム化された暗号化
encryption_type_desc nvarchar(64) 適用対象: SQL Server 2016 (13.x) 以降、SQL Database。

暗号化の種類の説明:

RANDOMIZED

DETERMINISTIC
encryption_algorithm_name sysname 適用対象: SQL Server 2016 (13.x) 以降、SQL Database。

暗号化アルゴリズムの名前。

AEAD_AES_256_CBC_HMAC_SHA_512 のみがサポートされています。
column_encryption_key_id int 適用対象: SQL Server 2016 (13.x) 以降、SQL Database。

CEK の ID。
column_encryption_key_database_name sysname 適用対象: SQL Server 2016 (13.x) 以降、SQL Database。

列の暗号化キーが存在するデータベースの名前 (列のデータベースと異なる場合)。 NULL (キーが列と同じデータベースに存在する場合)。
is_hidden bit 適用対象: SQL Server 2016 (13.x) 以降、SQL Database。

列が非表示かどうかを示します。

0 = 通常の、非表示ではない、表示される列

1 = 非表示の列
is_masked bit 適用対象: SQL Server 2016 (13.x) 以降、SQL Database。

列が動的データ マスキングでマスクされているかどうかを示します。

0 = 通常のマスクされていない列

1 = 列がマスクされている
graph_type int 値のセットを含む内部列。 値は、グラフ列は 1-8、その他は NULL です。
graph_type_desc nvarchar(60) 値のセットを含む内部列
is_data_deletion_filter_column bit 適用対象: Azure SQL Edge。 列がテーブルのデータ保持フィルター列であるかどうかを示します。
ledger_view_column_type tinyint 適用対象: SQL Server 2022 (16.x) 以降、SQL Database。

NULL でない場合は、台帳ビューの列の型を示します。

1 = TRANSACTION_ID
2 = SEQUENCE_NUMBER
3 = OPERATION_TYPE
4 = OPERATION_TYPE_DESC

データベース台帳の詳細については、台帳に関する記事を参照してください。
ledger_view_column_type_desc nvarchar(60) 適用対象: SQL Server 2022 (16.x) 以降、SQL Database。

NULL でない場合は、台帳ビューの列の型のテキスト説明が含まれます。

TRANSACTION_ID
SEQUENCE_NUMBER
OPERATION_TYPE
OPERATION_TYPE_DESC
is_dropped_ledger_table_column bit 適用対象: SQL Server 2022 (16.x) 以降、SQL Database。

削除された台帳テーブル列を示します。

アクセス許可

カタログ ビューでのメタデータの可視性は、ユーザーが所有しているか、ユーザーに何らかのアクセス許可が付与されたセキュリティ保護可能なリソースに限定されます。 詳細については、「 Metadata Visibility Configuration」を参照してください。

参照

システム ビュー (Transact-SQL)
オブジェクト カタログ ビュー (Transact-SQL)
カタログ ビュー (Transact-SQL)
SQL Server システム カタログに対するクエリに関してよく寄せられる質問
sys.all_columns (Transact-SQL)
sys.system_columns (Transact-SQL)