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

이 항목은 다음에 적용됩니다. 예SQL Server(2008부터)예Azure SQL Database예Azure SQL Data Warehouse 예병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

SQL ServerSQL Server에서 각 사용자 테이블마다 하나의 행을 반환합니다.Returns a row for each user table in SQL ServerSQL Server.

열 이름Column name 데이터 형식Data type DescriptionDescription
<열을 상속 ><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이 아닌 값은 이 테이블의 BLOB(Binary Large Object) 데이터를 보관하는 데이터 공간(파일 그룹 또는 파티션 구성표)의 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), geography, 또는 xml합니다.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.filegroups- sys.filegroups

-sys.partition_schemes- sys.partition_schemes

-sys.indexes- 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 행의 텍스트에 허용된 최대 바이트입니다.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)부터 SQL Server 2017SQL Server 2017Azure SQL 데이터베이스Azure SQL Database까지Applies to: SQL Server 2012(11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017 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)부터 SQL Server 2017SQL Server 2017Azure SQL 데이터베이스Azure SQL Database까지Applies to: SQL Server 2014(12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017 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)부터 SQL Server 2017SQL Server 2017Azure SQL 데이터베이스Azure SQL Database까지Applies to: SQL Server 2014(12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017 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)부터 SQL Server 2017SQL Server 2017Azure SQL 데이터베이스Azure SQL Database까지Applies to: SQL Server 2014(12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017 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)부터 SQL Server 2017SQL Server 2017Azure SQL 데이터베이스Azure SQL Database까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017 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)부터 SQL Server 2017SQL Server 2017Azure SQL 데이터베이스Azure SQL Database까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017 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)부터 SQL Server 2017SQL Server 2017Azure SQL 데이터베이스Azure SQL Database까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017 and Azure SQL 데이터베이스Azure SQL Database.

때 temporal_type IN (2, 4) 기록 데이터를 유지 하는 테이블의 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) 통해 SQL Server 2017SQL Server 2017Azure SQL 데이터베이스Azure SQL DatabaseApplies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017 and Azure SQL 데이터베이스Azure SQL Database

스트레치 사용 테이블 인지를 나타냅니다.Indicates whether the table is Stretch-enabled.

0 = 테이블은 스트레치 지원 하지 않습니다.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) 통해 SQL Server 2017SQL Server 2017, Azure SQL 데이터베이스Azure SQL Database, 및 Azure SQL 데이터 웨어하우스Azure SQL Data Warehouse합니다.Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017, Azure SQL 데이터베이스Azure SQL Database, and Azure SQL 데이터 웨어하우스Azure 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 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 적용 대상: 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) 적용 대상: Azure SQL 데이터베이스Azure SQL Database.Applies to: Azure SQL 데이터베이스Azure SQL Database.

임시 기록 보존 기간 단위 유형의의 텍스트 설명입니다.The text description of type of temporal history retention period unit.

INFINITEINFINITE

DAYDAY

WEEKWEEK

MONTHMONTH

YEARYEAR

PermissionsPermissions

사용자가 소유하고 있거나 사용 권한을 부여 받은 보안 개체에 대해서만 카탈로그 뷰의 메타데이터를 볼 수 있습니다.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)부터 SQL Server 2017SQL Server 2017Azure SQL 데이터베이스Azure SQL Database까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017 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 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& #40; Transact SQL & #41; DBCC CHECKDB (Transact-SQL)
DBCC CHECKTABLE(Transact-SQL) DBCC CHECKTABLE (Transact-SQL)
SQL Server 시스템 카탈로그 FAQ Querying the SQL Server System Catalog FAQ
메모리 내 OLTP(메모리 내 최적화)In-Memory OLTP (In-Memory Optimization)