sys.columns (Transact-SQL)
Applies to: 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 です。テキスト、ntext、およびイメージ列の max_length 場合、値は 16 (16 バイトポインターのみを表します)、またはによって設定されたsp_tableoption 'text in row' 値です。 |
precision |
tinyint | 数値ベースの場合の列の有効桁数。それ以外の場合は . 0 |
scale |
tinyint | 数値ベースの場合の列のスケール。それ以外の場合は . 0 |
collation_name |
sysname | 文字ベースの場合は、列の照合順序の名前です。それ以外の場合は、NULL です。 |
is_nullable |
bit | 1 = 列が null 許容0 = 列が null 許容でない |
is_ansi_padded |
bit | 1 = 文字、バイナリ、またはバリアントの場合、列は動作を使用 ANSI_PADDING ON します0 = 列が文字、バイナリ、またはバリアントではない |
is_rowguidcol |
bit | 1 = Column is a declared 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 | スタンドアロン オブジェクトのsp_bindefault、またはインライン列レベルDEFAULT の制約のいずれであるかに関係なく、既定のオブジェクトの ID。 インラインの列レベルの既定のオブジェクトの parent_object_id 列は、テーブル自体への参照です。0 = 既定値なし |
rule_object_id |
int | を使用して列にバインドされたスタンドアロン規則の ID sys.sp_bindrule. 0 = スタンドアロンルールなし。 列レベルCHECK の制約については、sys.check_constraintsを参照してください。 |
is_sparse |
bit | 1 = 列はスパース列です。 詳細については、「スパース列の使用」を参照してください。 |
is_column_set |
bit | 1 = 列は列セットです。 詳細については、「スパース列の使用」を参照してください。 |
generated_always_type |
tinyint | 列の値が生成されるタイミングを識別します (システム テーブル内の列に対しては常に 0 指定されます)。適用対象: SQL Server 2016 (13.x) 以降のバージョンと SQL Database。 0 = NOT_APPLICABLE 1 = AS_ROW_START 2 = AS_ROW_END 適用対象: SQL Server 2022 (16.x) 以降のバージョン、および SQL Database。 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) | 値の generated_always_type テキスト説明 (常に NOT_APPLICABLE システム テーブル内の列の場合)適用対象: SQL Server 2016 (13.x) 以降のバージョンと SQL Database。 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 | 暗号化の種類:1 = 決定論的暗号化2 = ランダム化された暗号化適用対象: SQL Server 2016 (13.x) 以降のバージョン、および SQL Database |
encryption_type_desc |
nvarchar(64) | 暗号化の種類の説明:RANDOMIZED DETERMINISTIC 適用対象: SQL Server 2016 (13.x) 以降のバージョン、および SQL Database |
encryption_algorithm_name |
sysname | 暗号化アルゴリズムの名前。 サポートされるのは AEAD_AES_256_CBC_HMAC_SHA_512 のみです。適用対象: SQL Server 2016 (13.x) 以降のバージョン、および SQL Database |
column_encryption_key_id |
int | 列暗号化キー (CEK) の ID。 適用対象: SQL Server 2016 (13.x) 以降のバージョン、および SQL Database |
column_encryption_key_database_name |
sysname | 列の暗号化キーが存在するデータベースの名前 (列のデータベースと異なる場合)。 NULL (キーが列と同じデータベースに存在する場合)。適用対象: SQL Server 2016 (13.x) 以降のバージョン、および SQL Database |
is_hidden |
bit | 列が非表示かどうかを示します。0 = 通常の非表示でない、表示可能な列1 = 非表示の列適用対象: SQL Server 2016 (13.x) 以降のバージョン、および SQL Database |
is_masked |
bit | 列が動的データ マスクによってマスクされているかどうかを示します。0 = 通常のマスクされていない列1 = 列がマスクされている適用対象: SQL Server 2016 (13.x) 以降のバージョン、および SQL Database |
graph_type |
int | 値のセットを含む内部列。 値は、グラフ列の間と8 グラフ列の間1 、およびそのNULL 他の列用です。 |
graph_type_desc |
nvarchar(60) | 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。 |
is_data_deletion_filter_column |
bit | 列がテーブルのデータ保持フィルター列であるかどうかを示します。 適用対象: Azure SQL Edge |
ledger_view_column_type |
int | そうでない NULL 場合は、台帳ビューの列の種類を示します。1 = TRANSACTION_ID 2 = SEQUENCE_NUMBER 3 = OPERATION_TYPE 4 = OPERATION_TYPE_DESC 詳細については、台帳の概要を参照してください。 適用対象: SQL Server 2022 (16.x) 以降のバージョン、および SQL Database |
ledger_view_column_type_desc |
nvarchar(60) | そうでない NULL 場合は、台帳ビューの列の種類のテキスト説明が含まれます。TRANSACTION_ID SEQUENCE_NUMBER OPERATION_TYPE OPERATION_TYPE_DESC 適用対象: SQL Server 2022 (16.x) 以降のバージョン、および SQL Database |
is_dropped_ledger_column |
bit | 削除された台帳テーブル列を示します。 適用対象: SQL Server 2022 (16.x) 以降のバージョン、および SQL Database |
アクセス許可
カタログ ビューでのメタデータの可視性は、ユーザーが所有しているか、ユーザーに何らかのアクセス許可が付与されているセキュリティ保護可能なリソースに限定されます。 詳細については、「 Metadata Visibility Configuration」を参照してください。
使用例
テーブルの列の詳細を取得する
テーブル内の列のメタデータを取得するには、次のコードを使用できます。
CREATE TABLE dbo.[sample] (
id INT NOT NULL
,col1 VARBINARY(10) NULL
)
GO
SELECT c.[name] AS column_name
,t.[name] AS [type_name]
,c.[max_length]
,c.[precision]
,c.[scale]
FROM sys.columns c
INNER JOIN sys.types t ON c.user_type_id = t.user_type_id
WHERE object_id = object_id('dbo.sample');