sys.columns (Transact-SQL)
適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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 です。 text、ntext、および 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。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)