sys.system_columns (Transact-SQL)

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric のSQL 分析エンドポイント Microsoft Fabric のウェアハウス

列を持つシステム オブジェクトの列ごとに 1 行のデータを保持します。

列名 データ型 説明
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 です。

text 列の場合、max_length の値は、16 または sp_tableoption 'text in row' によって設定された値になります。
有効桁数 (precision) 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。 7、8、9、10 は、SQL Database にのみ適用されます。

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

0 = NOT_APPLICABLE
1 = AS_ROW_START
2 = AS_ROW_END
7 = AS_TRANSACTION_ID_START
8 = AS_TRANSACTION_ID_END
9 = AS_SEQUENCE_NUMBER_START
10 = AS_SEQUENCE_NUMBER_END

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

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
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

アクセス許可

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

参照

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