適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric の SQL 分析エンドポイント
Microsoft Fabric のウェアハウス
Microsoft Fabric の SQL データベース
ビューやテーブルなど列を含むオブジェクトの各列の行を返します。 次の一覧には、列を含むオブジェクト型が含まれています。
- テーブル値アセンブリ関数 (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 |
ビット |
1 = 列が null 許容0 = 列が null 許容でない |
is_ansi_padded |
ビット |
1 = 列は、文字、バイナリ、またはバリアントの場合に ANSI_PADDING ON 動作を使用します0 = 列が文字、バイナリ、またはバリアントではない |
is_rowguidcol |
ビット |
1 = 列は宣言された ROWGUIDCOL |
is_identity |
ビット |
1 = 列に ID 値がある |
is_computed |
ビット |
1 = 列は計算列です |
is_filestream |
ビット |
1 = 列は FILESTREAM 列です |
is_replicated |
ビット |
1 = 列がレプリケートされる |
is_non_sql_subscribed |
ビット |
1 = 列に SQL Server 以外のサブスクライバーがある |
is_merge_published |
ビット |
1 = 列がマージパブリッシュされる |
is_dts_replicated |
ビット |
1 = 列は SSIS を使用してレプリケートされます |
is_xml_document |
ビット |
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 |
sys.sp_bindrule を用いてカラムにバインドされたスタンドアロンルールのID。0 = スタンドアロンルールなし。 列レベルの CHECK 制約については、 sys.check_constraintsを参照してください。 |
is_sparse |
ビット |
1 = 列はスパース列です。 詳細については、「 スパース列の使用を参照してください。 |
is_column_set |
ビット |
1 = 列は列セットです。 詳細については、「 スパース列の使用を参照してください。 |
generated_always_type |
tinyint | 列の値が生成されるタイミングを識別します (システム テーブル内の列に対して常に 0 されます)。適用対象: SQL Server 2016 (13.x) 以降のバージョンと SQL Database。 0 = NOT_APPLICABLE1 = AS_ROW_START2 = AS_ROW_END適用対象: SQL Server 2022 (16.x) 以降のバージョン、および SQL Database。 5 = AS_TRANSACTION_ID_START6 = AS_TRANSACTION_ID_END7 = AS_SEQUENCE_NUMBER_START8 = AS_SEQUENCE_NUMBER_END詳細については、「テンポラル テーブル」を参照してください。 |
generated_always_type_desc |
nvarchar(60) |
generated_always_type値のテキスト説明 (システム テーブル内の列に対して常にNOT_APPLICABLE)適用対象: SQL Server 2016 (13.x) 以降のバージョンと SQL Database。 NOT_APPLICABLEAS_ROW_STARTAS_ROW_END適用対象: SQL Server 2022 (16.x) 以降のバージョン、および SQL Database。 AS_TRANSACTION_ID_STARTAS_TRANSACTION_ID_ENDAS_SEQUENCE_NUMBER_STARTAS_SEQUENCE_NUMBER_END |
encryption_type |
int | 暗号化の種類:1 = 決定論的暗号化2 = ランダム化された暗号化適用対象: SQL Server 2016 (13.x) 以降のバージョン、および SQL Database |
encryption_type_desc |
nvarchar(64) | 暗号化の種類の説明:RANDOMIZEDDETERMINISTIC適用対象: 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 |
ビット | 列が非表示かどうかを示します。0 = 通常の非表示でない、表示可能な列1 = 非表示の列適用対象: SQL Server 2016 (13.x) 以降のバージョン、および SQL Database |
is_masked |
ビット | 列が動的データ マスクによってマスクされているかどうかを示します。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 |
ビット | 列がテーブルのデータ保持フィルター列であるかどうかを示します。 適用対象: Azure SQL Edge |
ledger_view_column_type |
int |
NULLされていない場合は、台帳ビューの列の種類を示します。1 = TRANSACTION_ID2 = SEQUENCE_NUMBER3 = OPERATION_TYPE4 = OPERATION_TYPE_DESC詳細については、「 Ledger の概要を参照してください。 適用対象: SQL Server 2022 (16.x) 以降のバージョン、および SQL Database |
ledger_view_column_type_desc |
nvarchar(60) |
NULLされていない場合は、台帳ビューの列の種類に関するテキストの説明が含まれます。TRANSACTION_IDSEQUENCE_NUMBEROPERATION_TYPEOPERATION_TYPE_DESC適用対象: SQL Server 2022 (16.x) 以降のバージョン、および SQL Database |
is_dropped_ledger_column |
ビット | 削除された台帳テーブル列を示します。 適用対象: SQL Server 2022 (16.x) 以降のバージョン、および SQL Database |
vector_dimensions |
int | ベクトルの次元数を示します。 対象:SQL Server 2025(17.x)以降のバージョン、およびSQLデータベース |
vector_base_type |
tinyint | ベクター ディメンション値の格納に使用されるデータ型を示します。0 = 32ビット(単精度)float1 = 16ビット(半精度)float 1対象:SQL Server 2025(17.x)以降のバージョン、およびSQLデータベース |
vector_base_type_desc |
nvarchar(10) | ベクター ディメンション値の格納に使用されるデータ型のテキスト説明を格納します。 対象:SQL Server 2025(17.x)以降のバージョン、およびSQLデータベース |
1 詳細は 「半精度浮動小数点形式」を参照してください。
アクセス許可
カタログ ビューでのメタデータの可視性は、ユーザーが所有しているか、ユーザーに何らかのアクセス許可が付与されているセキュリティ保護可能なリソースに限定されます。 詳細については、「 メタデータの可視性の構成」を参照してください。
使用例
テーブルの列の詳細を取得する
テーブル内の列のメタデータを取得するには、以下のコードを使用します。
CREATE TABLE dbo.[sample]
(
id INT NOT NULL,
col1 VARBINARY (10) NULL
);
SELECT c.[name] AS column_name,
t.[name] AS [type_name],
c.[max_length],
c.[precision],
c.[scale]
FROM sys.columns AS c
INNER JOIN sys.types AS t
ON c.user_type_id = t.user_type_id
WHERE object_id = object_id('dbo.sample');