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 です。text、ntext、および image 列の場合、 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 | 値のセットを含む内部列。 値は、グラフ列の 1 と 8 の間、および他の列の 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 詳細については、「 Ledger の概要を参照してください。 適用対象: 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');