Aracılığıyla paylaş


sys.tables (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Bir SQL Server veritabanındaki her kullanıcı tablosu için bir satır döndürür.

Sütun adı Veri türü Description
<inherited columns> Bu görünümün devraldığı sütunların listesi için bkz.sys.objects (Transact-SQL) .
lob_data_space_id int Sıfır olmayan bir değer, bu tablo için büyük nesne ikili (LOB) verilerini tutan veri alanının (dosya grubu veya bölüm şeması) kimliğidir. LOB veri türlerine örnek olarak varbinary(max),varchar(max),coğrafya veya xml bulunur.

0 = Tabloda LOB veri yok.
filestream_data_space_id int Bir FILESTREAM dosya grubu veya FILESTREAM dosya gruplarından oluşan bir bölüm şeması için veri alanı kimliği.

Bir FILESTREAM dosya grubunun adını bildirmek için sorgu SELECT FILEGROUP_NAME (filestream_data_space_id) FROM sys.tablesçalıştırın.
sys.tables aşağıdaki görüşlere eklenebilir filestream_data_space_id = data_space_id.
- sys.filegroups
- sys.partition_schemes
- sys.indexes
- sys.allocation_units
- sys.fulltext_catalogs
- sys.data_spaces
- sys.destination_data_spaces
- sys.master_files
- sys.database_files
- backupfilegroup(katıl)filegroup_id
max_column_id_used int Bu tablo tarafından şimdiye kadar kullanılan maksimum sütun kimliği.
lock_on_bulk_load bit Masa toplu yükle kilitlenmiş. Daha fazla bilgi için sp_tableoption (Transact-SQL) sayfasına bakınız.
uses_ansi_nulls bit Tablo, veritabanı SET ANSI_NULLS seçeneğiyle ONoluşturuldu.
is_replicated bit 1 = Tablo, anlık görüntü çoğaltma veya işlemsel çoğaltma kullanılarak yayımlanır.
has_replication_filter bit 1 = Tabloda bir çoğaltma filtresi bulunur.
is_merge_published bit 1 = Tablo, birleştirme çoğaltımı kullanılarak yayımlanır.
is_sync_tran_subscribed bit 1 = Tablo, hemen güncellenen abonelikle abone olur.
has_unchecked_assembly_data bit 1 = Tablo, tanımı son ALTER ASSEMBLYzamanlarda değişen bir montaja bağlı olan kalıcı verileri içerir. Bir sonraki başarılı DBCC CHECKDB veya DBCC CHECKTABLEsonra sıfırlanacak.
text_in_row_limit int Metin sırada izin verilen maksimum baytlar.

0 = Satır içindeki metin seçeneği ayarlanmamış. Daha fazla bilgi için sp_tableoption (Transact-SQL) sayfasına bakınız.
large_value_types_out_of_row bit 1 = Büyük değer türleri sıradan dışarıda saklanır. Daha fazla bilgi için sp_tableoption (Transact-SQL) sayfasına bakınız.
is_tracked_by_cdc bit 1 = Değişiklik veri yakalama için tablo etkinleştirildi. Daha fazla bilgi için sys.sp_cdc_enable_table (Transact-SQL) bölümine bakınız.
lock_escalation tinyint Tablo için opsiyonun LOCK_ESCALATION bir değeri:

0 = TABLE
1 = DISABLE
2 = AUTO
lock_escalation_desc nvarchar(60) Tablo için lock_escalation seçeneğinin metin açıklaması. Olası değerler şunlardır: TABLE, AUTOve DISABLE.
is_filetable bit 1 = Tablo bir DosyaTablo'dur.

FileTables hakkında daha fazla bilgi için FileTables (SQL Server) sayfasına bakınız.

Şunlar için geçerlidir: SQL Server 2012 (11.x) ve sonraki sürümleri ve Azure SQL Veritabanı
is_memory_optimized bit Olası değerler şunlardır:

0 = bellek optimize edilmemiş.
1 = bellek optimize edilmiştir.

0 değeri varsayılan değerdir.

Bellek optimize edilmiş tablolar, şeması diğer kullanıcı tablolarına benzer şekilde diskte kalıcı olan bellek içi kullanıcı tablolarıdır. Bellek optimize edilmiş tablolara, yerel derlenmiş depolanmış prosedürlerden erişilebilir.

Şunlar için geçerlidir: SQL Server 2014 (12.x) ve sonraki sürümleri ve Azure SQL Veritabanı.
durability tinyint Aşağıdaki olası değerler şunlardır:

0 = SCHEMA_AND_DATA
1 = SCHEMA_ONLY

Bir değer varsayılan 0 değerdir.

Şunlara uygulanır: SQL Server 2014 (12.x) ve sonraki sürümler, ayrıca Azure SQL Database
durability_desc nvarchar(60) Olası değerler şunlardır:

SCHEMA_ONLY
SCHEMA_AND_DATA

Bir değer, SCHEMA_AND_DATA tablonun dayanıklı, hafıza içi bir tablo olduğunu gösterir. SCHEMA_AND_DATA bellek optimize edilmiş tablolar için varsayılan değerdir. Bir değer, SCHEMA_ONLY veritabanı bellek optimize edilmiş nesnelerle yeniden başlatıldığında tablo verisinin kalıcı olmadığını gösterir.

Şunlara uygulanır: SQL Server 2014 (12.x) ve sonraki sürümler, ayrıca Azure SQL Database
temporal_type tinyint Tablo türünü temsil eden sayısal değer:

0 = NON_TEMPORAL_TABLE
1 = HISTORY_TABLE (zamansal tabloyla ilişkilendirilmiş)
2 = SYSTEM_VERSIONED_TEMPORAL_TABLE

Şunlara uygulanır: SQL Server 2016 (13.x) ve sonraki sürümler, ayrıca Azure SQL Database
temporal_type_desc nvarchar(60) Tablo türünün metin açıklaması:

NON_TEMPORAL_TABLE
HISTORY_TABLE
SYSTEM_VERSIONED_TEMPORAL_TABLE

Şunlara uygulanır: SQL Server 2016 (13.x) ve sonraki sürümler, ayrıca Azure SQL Database
history_table_id int Eğer temporal_type ise 2 ya da ledger_type olduğunda 2, zaman tablosu için tarihsel verileri saklayan tablonun döndürmeleri object_id , aksi takdirde döndürür NULL.

Şunlara uygulanır: SQL Server 2016 (13.x) ve sonraki sürümler, ayrıca Azure SQL Database
is_remote_data_archive_enabled bit Tablonun Stretch etkin olup olmadığını gösterir.

0 = Tablo Stretch-enabled değil.
1 = Tablo Stretch özellikli.

Daha fazla bilgi için Stretch Veritabanı'na bakınız.

Şunlara uygulanır: SQL Server 2016 (13.x) ve sonraki sürümler, ayrıca Azure SQL Database
is_external bit Tablo harici bir tablo olduğunu gösterir.

0 = Tablo harici bir tablo değildir.
1 = Tablo harici bir tablodur.

Uygulanır: SQL Server 2016 (13.x) ve sonraki sürümler, Azure SQL Database ve Azure Synapse Analytics
history_retention_period int Zamansal geçmiş tutma süresini birimlerle history_retention_period_unittemsil eden sayısal değer.

için geçerlidir: SQL Server 2017 (14.x) ve sonraki sürümleri ve Azure SQL Veritabanı
history_retention_period_unit int Zamansal geçmiş tutma süresi biriminin türünü temsil eden sayısal değer.

-1: INFINITE
0: SECOND
1: MINUTE
2: HOUR
3: DAY
4: WEEK
5: MONTH
6: YEAR

için geçerlidir: SQL Server 2017 (14.x) ve sonraki sürümleri ve Azure SQL Veritabanı
history_retention_period_unit_desc nvarchar(10) Zamansal öykü tutma süresi biriminin metin tanımı.

INFINITE
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
YEAR

için geçerlidir: SQL Server 2017 (14.x) ve sonraki sürümleri ve Azure SQL Veritabanı
is_node bit 1 = Graf düğüm tablosu.
0 = Bir grafik düğüm tablosu değil.

için geçerlidir: SQL Server 2017 (14.x) ve sonraki sürümleri ve Azure SQL Veritabanı
is_edge bit 1 = Grafik kenar tablosu.
0 = Bir grafik kenar tablosu değil.

için geçerlidir: SQL Server 2017 (14.x) ve sonraki sürümleri ve Azure SQL Veritabanı
data_retention_period int Veri saklama süresini birimlerle data_retention_period_unittemsil eden sayısal değer.

Uygulanır: Azure SQL Edge only
data_retention_period_unit int Veri saklama süresi biriminin türünü temsil eden sayısal değer.

-1: INFINITE
0: SECOND
1: MINUTE
2: HOUR
3: DAY
4: WEEK
5: MONTH
6: YEAR

Uygulanır: Azure SQL Edge only
data_retention_period_unit_desc nvarchar(10) Veri tutma süresi biriminin türünün metin açıklaması.

INFINITE
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
YEAR

Uygulanır: Azure SQL Edge only
ledger_type tinyint Sayısal değer, tablonun defter tablosu olup olmadığını gösterir.

0 = NON_LEDGER_TABLE
1 = HISTORY_TABLE (güncellenebilir bir defter tablosuyla ilişkilendirilmiş)
2 = UPDATABLE_LEDGER_TABLE
3 = APPEND_ONLY_LEDGER_TABLE

Veritabanı kayıt defteri hakkında daha fazla bilgi için bkz. Ledger.

Şunlar için geçerlidir: SQL Server 2022 (16.x) ve sonraki sürümleri ve Azure SQL Veritabanı
ledger_type_desc nvarchar(60) Sütundaki ledger_type bir değerin metin açıklaması:

NON_LEDGER_TABLE
HISTORY_TABLE
UPDATABLE_LEDGER_TABLE
APPEND_ONLY_LEDGER_TABLE

Şunlar için geçerlidir: SQL Server 2022 (16.x) ve sonraki sürümleri ve Azure SQL Veritabanı
ledger_view_id int ledger_type IN (2, 3) Defter görünümü dönerkenobject_id, aksi takdirde dönerNULL.

Şunlar için geçerlidir: SQL Server 2022 (16.x) ve sonraki sürümleri ve Azure SQL Veritabanı
is_dropped_ledger_table bit Düşürülmüş bir defter tablosunu gösterir.

Şunlar için geçerlidir: SQL Server 2022 (16.x) ve sonraki sürümleri ve Azure SQL Veritabanı

Permissions

Katalog görünümlerindeki meta verilerin görünürlüğü, kullanıcının sahip olduğu veya kullanıcıya bazı izinlerin verildiği güvenli hale getirilebilir öğelerle sınırlıdır. Daha fazla bilgi için bkz. meta veri görünürlüğü yapılandırması .

Örnekler

A. Birincil anahtarı olmayan tüm kullanıcı tablolarını döndür

Aşağıdaki örnek, birincil anahtarı olmayan tüm kullanıcı tablolarını döndürür.

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

Aşağıdaki örnek, ilgili zamansal verilerin nasıl açığa çıkarılabileceğini göstermektedir.

Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümleri ve Azure SQL Veritabanı.

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;

C. Zaman geçmişi tutulması hakkında liste bilgileri

Aşağıdaki örnek, zamansal geçmiş tutulması bilgisinin nasıl ortaya çıkarılabileceğini göstermektedir.

Şunlar için geçerlidir: SQL Server 2017 (14.x) ve sonraki sürümleri ve Azure SQL Veritabanı.

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;