sys.columns (Transact-SQL)sys.columns (Transact-SQL)

適用対象: ○SQL Server (2008 以降) ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

ビューやテーブルなど、列を持つオブジェクトの列ごとに 1 行のデータを返します。Returns a row for each column of an object that has columns, such as views or tables. 以下に、列を持つオブジェクトの種類の一覧を示します。The following is a list of object types that have columns:

  • テーブル値アセンブリ関数 (FT)Table-valued assembly functions (FT)

  • インライン テーブル値 SQL 関数 (IF)Inline table-valued SQL functions (IF)

  • 内部テーブル (IT)Internal tables (IT)

  • システム テーブル (S)System tables (S)

  • テーブル値 SQL 関数 (TF)Table-valued SQL functions (TF)

  • ユーザー テーブル (U)User tables (U)

  • ビュー (V)Views (V)

列名Column name データ型Data type 説明Description
object_idobject_id intint この列が属するオブジェクトの ID です。ID of the object to which this column belongs.
NAMEname sysnamesysname 列の名前です。Name of the column. オブジェクト内で一意です。Is unique within the object.
column_idcolumn_id intint 列の ID です。ID of the column. オブジェクト内で一意です。Is unique within the object.

列 ID は連続した値にならないことがあります。Column IDs might not be sequential.
system_type_idsystem_type_id tinyinttinyint 列のシステム型の ID。ID of the system type of the column.
user_type_iduser_type_id intint ユーザーが定義した列の型の ID です。ID of the type of the column as defined by the user.

型の名前を返すには、この列で sys.typesカタログ ビューに結合します。To return the name of the type, join to the sys.types catalog view on this column.
max_lengthmax_length smallintsmallint 列の最大長 (バイト単位) です。Maximum length (in bytes) of the column.

-1 = 列のデータ型はvarchar (max)nvarchar (max)varbinary (max)、またはxmlします。-1 = Column data type is varchar(max), nvarchar(max), varbinary(max), or xml.

テキスト列、max_length の値は 16 か、sp_tableoption 'text in row' によって設定された値になります。For text columns, the max_length value will be 16 or the value set by sp_tableoption 'text in row'.
有効桁数 (precision)precision tinyinttinyint 数値ベースの場合は、列の有効桁数です。それ以外の場合は、0 です。Precision of the column if numeric-based; otherwise, 0.
scalescale tinyinttinyint 数値に基づく場合は列の小数点以下桁数それ以外の場合、0 を返します。Scale of column if numeric-based; otherwise, 0.
collation_namecollation_name sysnamesysname 文字ベースの場合は、列の照合順序の名前です。それ以外の場合は、NULL です。Name of the collation of the column if character-based; otherwise, NULL.
is_nullableis_nullable bitbit 1 = 列で NULL 値を使用できます。1 = Column is nullable.
is_ansi_paddedis_ansi_padded bitbit 1 = 文字、バイナリ、またはバリアントの場合、列で ANSI_PADDING ON 動作を使用します。1 = Column uses ANSI_PADDING ON behavior if character, binary, or variant.

0 = 列は文字、バイナリ、またはバリアントではありません。0 = Column is not character, binary, or variant.
is_rowguidcolis_rowguidcol bitbit 1 = 列は宣言された ROWGUIDCOL です。1 = Column is a declared ROWGUIDCOL.
is_identityis_identity bitbit 1 = 列は id 値1 = Column has identity values
is_computedis_computed bitbit 1 = 列は計算列です。1 = Column is a computed column.
is_filestreamis_filestream bitbit 1 = 列は FILESTREAM 列です。1 = Column is a FILESTREAM column.
is_replicatedis_replicated bitbit 1 = 列はレプリケートされています。1 = Column is replicated.
is_non_sql_subscribedis_non_sql_subscribed bitbit 1 = 列は SQL Server 以外のサブスクライバーを持ちます。1 = Column has a non-SQL Server subscriber.
is_merge_publishedis_merge_published bitbit 1 = 列はマージ パブリッシュされています。1 = Column is merge-published.
is_dts_replicatedis_dts_replicated bitbit 1 = 列は SSISSSIS を使用してレプリケートされています。1 = Column is replicated by using SSISSSIS.
is_xml_documentis_xml_document bitbit 1 = 内容が完全な XML ドキュメントです。1 = Content is a complete XML document.

0 = コンテンツはドキュメントの一部または列のデータ型でないxmlします。0 = Content is a document fragment or the column data type is not xml.
xml_collection_idxml_collection_id intint 列のデータ型がある場合、0 以外の場合xml XML が型指定されたとします。Nonzero if the data type of the column is xml and the XML is typed. この値は、列の検証 XML スキーマ名前空間を含むコレクションの ID です。The value will be the ID of the collection containing the validating XML schema namespace of the column.

0 = いいえの XML スキーマ コレクションです。0 = No XML schema collection.
default_object_iddefault_object_id intint スタンドアロン オブジェクトであるかどうかにかかわらず、既定のオブジェクトの ID sys.sp_bindefault、または、インラインの列レベルの既定の制約。ID of the default object, regardless of whether it is a stand-alone object sys.sp_bindefault, or an inline, column-level DEFAULT constraint. インラインの列レベルの既定のオブジェクトの parent_object_id 列は、テーブル自体への参照です。The parent_object_id column of an inline column-level default object is a reference back to the table itself.

0 = 既定値はありません。0 = No default.
rule_object_idrule_object_id intint sys.sp_bindrule を使用して列にバインドするスタンドアロン ルールの ID です。ID of the stand-alone rule bound to the column by using sys.sp_bindrule.

0 = スタンドアロン ルールはありません。0 = No stand-alone rule. 列レベルの CHECK 制約を参照してください。 sys.check_constraints (TRANSACT-SQL)します。For column-level CHECK constraints, see sys.check_constraints (Transact-SQL).
is_sparseis_sparse bitbit 1 = 列はスパース列です。1 = Column is a sparse column. 詳細については、「 スパース列の使用」を参照してください。For more information, see Use Sparse Columns.
is_column_setis_column_set bitbit 1 = 列は列セットです。1 = Column is a column set. 詳細については、「 スパース列の使用」を参照してください。For more information, see Use Sparse Columns.
generated_always_typegenerated_always_type tinyinttinyint 適用対象: SQL Server 2016 (13.x)SQL Server 2016 (13.x) から SQL Server 2017SQL Server 2017SQL DatabaseSQL DatabaseApplies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017, SQL DatabaseSQL Database.

列の値が生成されたときに識別します (システム テーブルの列の 0 は常になります)。Identifies when the column value is generated (will always be 0 for columns in system tables):

0 = NOT_APPLICABLE0 = NOT_APPLICABLE

1 = AS_ROW_START1 = AS_ROW_START

2 = AS_ROW_END2 = AS_ROW_END

詳細については、次を参照してください。テンポラル テーブル(リレーショナル データベース)します。For more information, see Temporal Tables (Relational databases).
generated_always_type_descgenerated_always_type_desc nvarchar(60)nvarchar(60) 適用対象: SQL Server 2016 (13.x)SQL Server 2016 (13.x) から SQL Server 2017SQL Server 2017SQL DatabaseSQL DatabaseApplies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017, SQL DatabaseSQL Database.

説明テキストgenerated_always_typeの値 (常にシステム テーブル内の列に対して NOT_APPLICABLE)Textual description of generated_always_type's value (always NOT_APPLICABLE for columns in system tables)

NOT_APPLICABLENOT_APPLICABLE

AS_ROW_STARTAS_ROW_START

AS_ROW_ENDAS_ROW_END
encryption_typeencryption_type intint 適用対象: SQL Server 2016 (13.x)SQL Server 2016 (13.x) から SQL Server 2017SQL Server 2017SQL DatabaseSQL DatabaseApplies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017, SQL DatabaseSQL Database.

暗号化の種類:Encryption type:

1 = 明確な暗号化1 = Deterministic encryption

2 = ランダム化された暗号化2 = Randomized encryption
encryption_type_descencryption_type_desc nvarchar(64)nvarchar(64) 適用対象: SQL Server 2016 (13.x)SQL Server 2016 (13.x) から SQL Server 2017SQL Server 2017SQL DatabaseSQL DatabaseApplies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017, SQL DatabaseSQL Database.

暗号化の種類の説明。Encryption type description:

ランダム化RANDOMIZED

DETERMINISTICDETERMINISTIC
encryption_algorithm_nameencryption_algorithm_name sysnamesysname 適用対象: SQL Server 2016 (13.x)SQL Server 2016 (13.x) から SQL Server 2017SQL Server 2017SQL DatabaseSQL DatabaseApplies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017, SQL DatabaseSQL Database.

暗号化アルゴリズムの名前。Name of encryption algorithm.

AEAD_AES_256_CBC_HMAC_SHA_512 のみがサポートされているとします。Only AEAD_AES_256_CBC_HMAC_SHA_512 is supported.
column_encryption_key_idcolumn_encryption_key_id intint 適用対象: SQL Server 2016 (13.x)SQL Server 2016 (13.x) から SQL Server 2017SQL Server 2017SQL DatabaseSQL DatabaseApplies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017, SQL DatabaseSQL Database.

CEK の ID です。ID of the CEK.
column_encryption_key_database_namecolumn_encryption_key_database_name sysnamesysname 適用対象: SQL Server 2016 (13.x)SQL Server 2016 (13.x) から SQL Server 2017SQL Server 2017SQL DatabaseSQL DatabaseApplies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017, SQL DatabaseSQL Database.

列のデータベースと異なる場合、列の暗号化キーが存在するデータベースの名前。The name of the database where the column encryption key exists if different than the database of the column. 列と同じデータベースに、キーが存在する場合は NULL です。NULL if the key exists in the same database as the column.
is_hiddenis_hidden bitbit 適用対象: SQL Server 2017SQL Server 2017 から SQL Server 2017SQL Server 2017SQL DatabaseSQL DatabaseApplies to: SQL Server 2017SQL Server 2017 through SQL Server 2017SQL Server 2017, SQL DatabaseSQL Database.

かどうか、列が非表示を示します。Indicates if the column is hidden:

0 = 正規、not 非表示、表示される列0 = regular, not-hidden, visible column

1 = 非表示の列1 = hidden column
is_maskedis_masked bitbit 適用対象: SQL Server 2017SQL Server 2017 から SQL Server 2017SQL Server 2017SQL DatabaseSQL DatabaseApplies to: SQL Server 2017SQL Server 2017 through SQL Server 2017SQL Server 2017, SQL DatabaseSQL Database.

動的データ マスクで列がマスクされるかどうかを示します。Indicates if the column is masked by a dynamic data masking:

0 = 標準、not マスクされた列0 = regular, not-masked column

1 = 列はマスクされています1 = column is masked

アクセス許可Permissions

カタログ ビューでのメタデータの表示が、ユーザーが所有しているかそのユーザーが権限を許可されている、セキュリティ保護可能なメタデータに制限されます。The visibility of the metadata in catalog views is limited to securables that a user either owns or on which the user has been granted some permission. 詳細については、「 Metadata Visibility Configuration」を参照してください。For more information, see Metadata Visibility Configuration.

参照See Also

システム ビュー (TRANSACT-SQL) System Views (Transact-SQL)
オブジェクト カタログ ビュー (Transact-SQL) Object Catalog Views (Transact-SQL)
カタログ ビュー (Transact-SQL) Catalog Views (Transact-SQL)
SQL Server のシステム カタログよく寄せられる質問のクエリを実行します。 Querying the SQL Server System Catalog FAQ
sys.all_columns (TRANSACT-SQL) sys.all_columns (Transact-SQL)
sys.system_columns (TRANSACT-SQL)sys.system_columns (Transact-SQL)