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

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

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

列名Column name データ型Data type 説明Description
<inherited columns> このビューが継承する列の一覧については、「 sys. objects (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 = 無効1 = DISABLE

2 = 自動2 = 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

テーブルで Stretch が有効になっているかどうかを示します。Indicates whether the table is Stretch-enabled.

0 = テーブルは Stretch が有効になっていません。0 = The table is not Stretch-enabled.

1 = テーブルは Stretch が有効です。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 Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse)Applies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) and later, Azure SQL データベースAzure SQL Database, and Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse).

テーブルが外部テーブルであることを示します。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 適用対象: Azure SQL データベースAzure SQL DatabaseApplies 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 適用対象: Azure SQL データベースAzure SQL DatabaseApplies 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) 適用対象: Azure SQL データベースAzure SQL DatabaseApplies to: Azure SQL データベースAzure SQL Database.

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

INFINITEINFINITE

DAYDAY

[WEEK]WEEK

MONTHMONTH

YEARYEAR
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.

適用対象: Azure SQL データベースAzure SQL DatabaseApplies 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)