sys.tables (Transact-SQL)sys.tables (Transact-SQL)

適用対象: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

SQL ServerSQL Server内のユーザーテーブルごとに1行の値を返します。Returns a row for each user table in SQL ServerSQL Server.

列名Column name データ型Data type [説明]Description
<継承された列 ><inherited columns> このビューが継承する列の一覧については、「 sys (transact-sql)」を参照してください。For a list of columns that this view inherits, see sys.objects (Transact-SQL).
lob_data_space_idlob_data_space_id intint 0 以外の値は、このテーブルのラージ オブジェクト バイナリ (LOB) データを格納するデータ領域 (ファイル グループまたはパーティション構成) の ID です。A nonzero value is the ID of the data space (filegroup or partition scheme) that holds the large object binary (LOB) data for this table. LOB データ型の例としては、 varbinary (max)varchar (max)geographyxmlなどがあります。Examples of LOB data types include varbinary(max), varchar(max), geography, or xml.

0 = テーブルには LOB データが含まれません。0 = The table does not LOB data.
filestream_data_space_idfilestream_data_space_id intint FILESTREAM ファイル グループまたは FILESTREAM ファイル グループから成るパーティション構成のデータ領域 ID です。Is the data space ID for a FILESTREAM filegroup or a partition scheme that consists of FILESTREAM filegroups.

FILESTREAM ファイルグループの名前を報告するには、SELECT FILEGROUP_NAME (filestream_data_space_id) FROM sys.tablesクエリを実行します。To report the name of a FILESTREAM filegroup, execute the query SELECT FILEGROUP_NAME (filestream_data_space_id) FROM sys.tables.

sys.tables は、filestream_data_space_id = data_space_id で次のビューに結合できます。sys.tables can be joined to the following views on filestream_data_space_id = data_space_id.

-sys. ファイルグループ- sys.filegroups

-sys. partition_schemes- sys.partition_schemes

-sys. インデックス- sys.indexes

-sys. allocation_units- sys.allocation_units

-sys. fulltext_catalogs- sys.fulltext_catalogs

-sys. data_spaces- sys.data_spaces

-sys. destination_data_spaces- sys.destination_data_spaces

-sys. master_files- sys.master_files

-sys. database_files- sys.database_files

-backupfilegroup (filegroup_id での結合)- backupfilegroup (join on filegroup_id)
max_column_id_usedmax_column_id_used intint このテーブルで使用される列 ID の最大値です。Maximum column ID ever used by this table.
lock_on_bulk_loadlock_on_bulk_load bitbit テーブルは、一括読み込みにロックされます。Table is locked on bulk load. 詳細については、「sp_tableoption (Transact-SQL)」を参照してください。For more information, see sp_tableoption (Transact-SQL).
uses_ansi_nullsuses_ansi_nulls bitbit テーブルは、SET ANSI_NULLS データベース オプションが ON の場合に作成されます。Table was created with the SET ANSI_NULLS database option ON.
is_replicatedis_replicated bitbit 1 = テーブルは、スナップショット レプリケーションまたはトランザクション レプリケーションを使用してパブリッシュされます。1 = Table is published using snapshot replication or transactional replication.
has_replication_filterhas_replication_filter bitbit 1 = テーブルにはレプリケーション フィルターがあります。1 = Table has a replication filter.
is_merge_publishedis_merge_published bitbit 1 = テーブルは、マージ レプリケーションを使用してパブリッシュされます。1 = Table is published using merge replication.
is_sync_tran_subscribedis_sync_tran_subscribed bitbit 1 = テーブルは、即時更新サブスクリプションを使用してサブスクライブされます。1 = Table is subscribed using an immediate updating subscription.
has_unchecked_assembly_datahas_unchecked_assembly_data bitbit 1 = テーブルに、前回の ALTER ASSEMBLY で定義が変更されたアセンブリに依存する、持続データが含まれています。1 = Table contains persisted data that depends on an assembly whose definition changed during the last ALTER ASSEMBLY. 次の DBCC CHECKDB または DBCC CHECKTABLE が正常に完了した後、は0にリセットされます。Will be reset to 0 after the next successful DBCC CHECKDB or DBCC CHECKTABLE.
text_in_row_limittext_in_row_limit intint text in row で許可される最大バイト数です。The maximum bytes allowed for text in row.

0 = text in row オプションは設定されていません。0 = Text in row option is not set. 詳細については、「sp_tableoption (Transact-SQL)」を参照してください。For more information, see sp_tableoption (Transact-SQL).
large_value_types_out_of_rowlarge_value_types_out_of_row bitbit 1 = 大きい値の型は行外に格納されます。1 = Large value types are stored out-of-row. 詳細については、「sp_tableoption (Transact-SQL)」を参照してください。For more information, see sp_tableoption (Transact-SQL).
is_tracked_by_cdcis_tracked_by_cdc bitbit 1 = テーブルで変更データ キャプチャが有効になっています。1 = Table is enabled for change data capture. 詳細については、「 sys (. sp_cdc_enable_table transact-sql)」を参照してください。For more information, see sys.sp_cdc_enable_table (Transact-SQL).
lock_escalationlock_escalation tinyinttinyint テーブルの LOCK_ESCALATION オプションの値です。The value of the LOCK_ESCALATION option for the table:

0 = TABLE0 = TABLE

1 = DISABLE1 = DISABLE

2 = AUTO2 = AUTO
lock_escalation_desclock_escalation_desc nvarchar(60)nvarchar(60) テーブルの lock_escalation オプションについての説明テキストです。A text description of the lock_escalation option for the table. 有効値は、TABLE、AUTO、および DISABLE です。Possible values are: TABLE, AUTO, and DISABLE.
is_filetableis_filetable bitbit 適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降と Azure SQL データベースAzure SQL DatabaseApplies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later and Azure SQL データベースAzure SQL Database.

1 = テーブルは FileTable です。1 = Table is a FileTable.

FileTables について詳しくは、「FileTables (SQL Server)」をご覧ください。For more information about FileTables, see FileTables (SQL Server).
durabilitydurability tinyinttinyint 適用対象: SQL Server 2014 (12.x)SQL Server 2014 (12.x) 以降と Azure SQL データベースAzure SQL DatabaseApplies to: SQL Server 2014 (12.x)SQL Server 2014 (12.x) and later and Azure SQL データベースAzure SQL Database.

返される値は次のとおりです。The following are possible values:

0 = SCHEMA_AND_DATA0 = SCHEMA_AND_DATA

1 = SCHEMA_ONLY1 = SCHEMA_ONLY

値 0 が既定値です。The value of 0 is the default value.
durability_descdurability_desc nvarchar(60)nvarchar(60) 適用対象: SQL Server 2014 (12.x)SQL Server 2014 (12.x) 以降と Azure SQL データベースAzure SQL DatabaseApplies to: SQL Server 2014 (12.x)SQL Server 2014 (12.x) and later and Azure SQL データベースAzure SQL Database.

使用できる値を次に示します。The following are the possible values:

SCHEMA_ONLYSCHEMA_ONLY

SCHEMA_AND_DATASCHEMA_AND_DATA

値 SCHEMA_AND_DATA は、テーブルが持続性のあるインメモリ テーブルであることを示します。The value of SCHEMA_AND_DATA indicates that the table is a durable, in-memory table. メモリ最適化テーブルの既定値は SCHEMA_AND_DATA です。SCHEMA_AND_DATA is the default value for memory optimized tables. 値 SCHEMA_ONLY は、メモリ最適化オブジェクトでは、データベースを再起動した場合にテーブル データの更新内容が保存されないことを示します。The value of SCHEMA_ONLY indicates that the table data will not be persisted upon restart of the database with memory optimized objects.
is_memory_optimizedis_memory_optimized bitbit 適用対象: SQL Server 2014 (12.x)SQL Server 2014 (12.x) 以降と Azure SQL データベースAzure SQL DatabaseApplies to: SQL Server 2014 (12.x)SQL Server 2014 (12.x) and later and Azure SQL データベースAzure SQL Database.

使用できる値を次に示します。The following are the possible values:

0 = メモリ最適化ではありません。0 = not memory optimized.

1 = メモリ最適化です。1 = is memory optimized.

値 0 が既定の値です。A value of 0 is the default value.

メモリ最適化テーブルは、メモリ内のユーザーテーブルです。スキーマは、他のユーザーテーブルと同様にディスクに保存されます。Memory optimized tables are in-memory user tables, the schema of which is persisted on disk similar to other user tables. メモリ最適化テーブルには、ネイティブコンパイルストアドプロシージャからアクセスできます。Memory optimized tables can be accessed from natively compiled stored procedures.
temporal_typetemporal_type tinyinttinyint 適用対象: SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降と Azure SQL データベースAzure SQL DatabaseApplies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) and later and Azure SQL データベースAzure SQL Database.

テーブルの型を表す数値。The numeric value representing the type of table:

0 = NON_TEMPORAL_TABLE0 = NON_TEMPORAL_TABLE

1 = HISTORY_TABLE1 = HISTORY_TABLE

2 = SYSTEM_VERSIONED_TEMPORAL_TABLE2 = SYSTEM_VERSIONED_TEMPORAL_TABLE
temporal_type_desctemporal_type_desc nvarchar(60)nvarchar(60) 適用対象: SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降と Azure SQL データベースAzure SQL DatabaseApplies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) and later and Azure SQL データベースAzure SQL Database.

テーブルの種類のテキストの説明:The text description of the type of table:

NON_TEMPORAL_TABLENON_TEMPORAL_TABLE

HISTORY_TABLEHISTORY_TABLE

SYSTEM_VERSIONED_TEMPORAL_TABLESYSTEM_VERSIONED_TEMPORAL_TABLE
history_table_idhistory_table_id intint 適用対象: SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降と Azure SQL データベースAzure SQL DatabaseApplies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) and later and Azure SQL データベースAzure SQL Database.

(2, 4) で temporal_type ときに、履歴データを保持するテーブルの object_id を返します。それ以外の場合は、NULL を返します。When temporal_type IN (2, 4) returns object_id of the table that maintains historical data, otherwise returns NULL.
is_remote_data_archive_enabledis_remote_data_archive_enabled bitbit 適用対象: SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降および Azure SQL データベースAzure SQL DatabaseApplies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) and later and Azure SQL データベースAzure SQL Database

テーブルでは、拡張が有効ながあるかどうかを示します。Indicates whether the table is Stretch-enabled.

0 = テーブルは Stretch が許可されていません。0 = The table is not Stretch-enabled.

1 = テーブルは、拡張を有効にしました。1 = The table is Stretch-enabled.

詳細については、「 Stretch Database」を参照してください。For more info, see Stretch Database.
is_externalis_external bitbit 適用対象: SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降、Azure SQL データベースAzure SQL Database、および Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW)Applies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) and later, Azure SQL データベースAzure SQL Database, and Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW).

テーブルが外部テーブルであることを示します。Indicates table is an external table.

0 = テーブルは、外部テーブルではありません。0 = The table is not an external table.

1 = テーブルは外部テーブルです。1 = The table is an external table.
history_retention_periodhistory_retention_period intint Applies to: Azure SQL データベースAzure SQL Database.Applies to: Azure SQL データベースAzure SQL Database.

History_retention_period_unit で指定された単位で表した、テンポラル履歴の保有期間を表す数値。The numeric value representing duration of the temporal history retention period in units specified with history_retention_period_unit.
history_retention_period_unithistory_retention_period_unit intint Applies to: Azure SQL データベースAzure SQL Database.Applies to: Azure SQL データベースAzure SQL Database.

テンポラル履歴の保有期間の単位の種類を表す数値。The numeric value representing type of temporal history retention period unit.

-1: 無制限-1 :INFINITE

3: 日3: DAY

4: 週4: WEEK

5: 月5: MONTH

6: 年6: YEAR
history_retention_period_unit_deschistory_retention_period_unit_desc nvarchar(10)nvarchar(10) Applies to: Azure SQL データベースAzure SQL Database.Applies to: Azure SQL データベースAzure SQL Database.

テンポラル履歴保有期間の単位の種類の説明テキスト。The text description of type of temporal history retention period unit.

INFINITEINFINITE

[DAY]DAY

[WEEK]WEEK

[MONTH]MONTH

[YEAR]YEAR
is_nodeis_node bitbit 適用対象: SQL Server 2017 (14.x)SQL Server 2017 (14.x) および Azure SQL データベースAzure SQL DatabaseApplies to: SQL Server 2017 (14.x)SQL Server 2017 (14.x) and Azure SQL データベースAzure SQL Database.

1 = これはグラフノードテーブルです。1 = This is a graph Node table.

0 = これはグラフノードテーブルではありません。0 = This is not a graph Node table.
is_edgeis_edge bitbit 適用対象: SQL Server 2017 (14.x)SQL Server 2017 (14.x) および Azure SQL データベースAzure SQL DatabaseApplies to: SQL Server 2017 (14.x)SQL Server 2017 (14.x) and Azure SQL データベースAzure SQL Database.

1 = これはグラフのエッジテーブルです。1 = This is a graph Edge table.

0 = これは、グラフのエッジテーブルではありません。0 = This is not a graph Edge table.

アクセス許可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.

使用例Examples

次の例は、主キーを持たないすべてのユーザー テーブルを返します。The following example returns all of the user tables that do not have a primary key.

SELECT SCHEMA_NAME(schema_id) AS schema_name  
    ,name AS table_name   
FROM sys.tables   
WHERE OBJECTPROPERTY(object_id,'TableHasPrimaryKey') = 0  
ORDER BY schema_name, table_name;  
GO  
  

次の例では、一時的なデータがどのように関連する公開することができます。The following example shows how related temporal data can be exposed.

適用対象: SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降と Azure SQL データベースAzure SQL DatabaseApplies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) and later and Azure SQL データベースAzure SQL Database.

SELECT T1.object_id, T1.name as TemporalTableName, SCHEMA_NAME(T1.schema_id) AS TemporalTableSchema,  
T2.name as HistoryTableName, SCHEMA_NAME(T2.schema_id) AS HistoryTableSchema,  
T1.temporal_type_desc  
FROM sys.tables T1  
LEFT JOIN sys.tables T2   
ON T1.history_table_id = T2.object_id  
ORDER BY T1.temporal_type desc  

次の例は、テンポラル履歴のリテンション期間に関する情報を公開する方法を示しています。The following example shows how information on temporal history retention can be exposed.

Applies to: Azure SQL データベースAzure SQL Database.Applies to: Azure SQL データベースAzure SQL Database.

SELECT DB.is_temporal_history_retention_enabled, SCHEMA_NAME(T1.schema_id) AS TemporalTableSchema, 
T1.name as TemporalTableName, SCHEMA_NAME(T2.schema_id) AS HistoryTableSchema, T2.name as HistoryTableName,
T1.history_retention_period, T1.history_retention_period_unit_desc
FROM sys.tables T1  
OUTER APPLY (select is_temporal_history_retention_enabled from sys.databases where name = DB_NAME()) DB
LEFT JOIN sys.tables T2   
ON T1.history_table_id = T2.object_id WHERE T1.temporal_type = 2 

参照See Also

オブジェクト カタログ ビュー (Transact-SQL) Object Catalog Views (Transact-SQL)
カタログ ビュー (Transact-SQL) Catalog Views (Transact-SQL)
DBCC CHECKDB (Transact-SQL) DBCC CHECKDB (Transact-SQL)
DBCC CHECKTABLE (Transact-SQL) DBCC CHECKTABLE (Transact-SQL)
SQL Server システムカタログに対するクエリについてよく寄せられる質問 Querying the SQL Server System Catalog FAQ
インメモリ OLTP (インメモリ最適化)In-Memory OLTP (In-Memory Optimization)