sys.tables (Transact-SQL)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics Analytics yesPlatform System (PDW)

Mengembalikan baris untuk setiap tabel pengguna di SQL Server.

Nama kolom Jenis data Deskripsi
<kolom yang diwariskan> Untuk daftar kolom yang diwarisi tampilan ini, lihat sys.objects (Transact-SQL).
lob_data_space_id int Nilai bukan nol adalah ID ruang data (grup file atau skema partisi) yang menyimpan data biner objek besar (LOB) untuk tabel ini. Contoh jenis data LOB termasuk varbinary(max), varchar(max), geografi, atau xml.

0 = Tabel tidak memiliki data LOB.
filestream_data_space_id int Adalah ID ruang data untuk grup file FILESTREAM atau skema partisi yang terdiri dari grup file FILESTREAM.

Untuk melaporkan nama grup file FILESTREAM, jalankan kueri SELECT FILEGROUP_NAME (filestream_data_space_id) FROM sys.tables.

sys.tables dapat digabungkan ke tampilan berikut pada 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 (bergabung di filegroup_id)
max_column_id_used int ID kolom maksimum yang pernah digunakan oleh tabel ini.
lock_on_bulk_load bit Tabel dikunci pada beban massal. Untuk informasi selengkapnya, lihat sp_tableoption (Transact-SQL).
uses_ansi_nulls bit Tabel dibuat dengan opsi SET ANSI_NULLS database AKTIF.
is_replicated bit 1 = Tabel diterbitkan menggunakan replikasi rekam jepret atau replikasi transaksional.
has_replication_filter bit 1 = Tabel memiliki filter replikasi.
is_merge_published bit 1 = Tabel diterbitkan menggunakan replikasi penggabungan.
is_sync_tran_subscribed bit 1 = Tabel berlangganan menggunakan langganan pembaruan segera.
has_unchecked_assembly_data bit 1 = Tabel berisi data persisten yang bergantung pada rakitan yang definisinya berubah selama ALTER ASSEMBLY terakhir. Akan diatur ulang ke 0 setelah DBCC CHECKDB atau DBCC CHECKTABLE berhasil berikutnya.
text_in_row_limit int Byte maksimum yang diizinkan untuk teks dalam baris.

0 = Opsi teks dalam baris tidak diatur. Untuk informasi selengkapnya, lihat sp_tableoption (Transact-SQL).
large_value_types_out_of_row bit 1 = Jenis nilai besar disimpan di luar baris. Untuk informasi selengkapnya, lihat sp_tableoption (Transact-SQL).
is_tracked_by_cdc bit 1 = Tabel diaktifkan untuk mengubah pengambilan data. Untuk informasi selengkapnya, lihat sys.sp_cdc_enable_table (Transact-SQL).
lock_escalation tinyint Nilai opsi LOCK_ESCALATION untuk tabel:

0 = TABEL

1 = NONAKTIFKAN

2 = OTOMATIS
lock_escalation_desc nvarchar(60) Deskripsi teks opsi lock_escalation untuk tabel. Nilai yang mungkin adalah: TABLE, AUTO, dan DISABLE.
is_filetable bit Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru dan Azure SQL Database.

1 = Tabel adalah FileTable.

Untuk informasi selengkapnya tentang FileTables, lihat FileTables (SQL Server).
daya tahan tinyint Berlaku untuk: SQL Server 2014 (12.x) dan yang lebih baru dan Azure SQL Database.

Berikut ini adalah nilai yang mungkin:

0 = SCHEMA_AND_DATA

1 = SCHEMA_ONLY

Nilai 0 adalah nilai default.
durability_desc nvarchar(60) Berlaku untuk: SQL Server 2014 (12.x) dan yang lebih baru dan Azure SQL Database.

Berikut ini adalah nilai yang mungkin:

SCHEMA_ONLY

SCHEMA_AND_DATA

Nilai SCHEMA_AND_DATA menunjukkan bahwa tabel adalah tabel dalam memori yang tahan lama. SCHEMA_AND_DATA adalah nilai default untuk tabel memori yang dioptimalkan. Nilai SCHEMA_ONLY menunjukkan bahwa data tabel tidak akan dipertahankan saat menghidupkan ulang database dengan objek memori yang dioptimalkan.
is_memory_optimized bit Berlaku untuk: SQL Server 2014 (12.x) dan yang lebih baru dan Azure SQL Database.

Berikut ini adalah nilai yang mungkin:

0 = tidak memori dioptimalkan.

1 = memori dioptimalkan.

Nilai 0 adalah nilai default.

Tabel memori yang dioptimalkan adalah tabel pengguna dalam memori, skema yang bertahan pada disk yang mirip dengan tabel pengguna lainnya. Tabel memori yang dioptimalkan dapat diakses dari prosedur tersimpan yang dikompilasi secara asli.
temporal_type tinyint Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru dan Azure SQL Database.

Nilai numerik yang mewakili jenis tabel:

0 = NON_TEMPORAL_TABLE

1 = HISTORY_TABLE (terkait dengan tabel temporal)

2 = SYSTEM_VERSIONED_TEMPORAL_TABLE
temporal_type_desc nvarchar(60) Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru dan Azure SQL Database.

Deskripsi teks jenis tabel:

NON_TEMPORAL_TABLE

HISTORY_TABLE

SYSTEM_VERSIONED_TEMPORAL_TABLE
history_table_id int Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru dan Azure SQL Database.

Saat temporal_type = 2 atau ledger_type = 2 mengembalikan object_id tabel yang mempertahankan data historis untuk tabel temporal, jika tidak, mengembalikan NULL.
is_remote_data_archive_enabled bit Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru dan Azure SQL Database

Menunjukkan apakah tabel diaktifkan Stretch.

0 = Tabel tidak diaktifkan Stretch.

1 = Tabel diaktifkan Stretch.

Untuk informasi selengkapnya, lihat Stretch Database.
is_external bit Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru, Azure SQL Database, dan Azure Synapse Analytics.

Menunjukkan tabel adalah tabel eksternal.

0 = Tabel bukan tabel eksternal.

1 = Tabel adalah tabel eksternal.
history_retention_period int Berlaku untuk: Azure SQL Database.

Nilai numerik yang mewakili durasi periode retensi riwayat temporal dalam unit yang ditentukan dengan history_retention_period_unit.
history_retention_period_unit int Berlaku untuk: Azure SQL Database.

Nilai numerik yang mewakili jenis unit periode retensi riwayat temporal.

-1: TAK TERBATAS

3: HARI

4: MINGGU

5: BULAN

6: TAHUN
history_retention_period_unit_desc nvarchar(10) Berlaku untuk: Azure SQL Database.

Deskripsi teks jenis unit periode retensi riwayat temporal.

TAK TERBATAS

DAY

MINGGU

BULAN

TAHUN
is_node bit Berlaku untuk: SQL Server 2017 (14.x) dan Azure SQL Database.

1 = Ini adalah tabel Simpul grafik.

0 = Ini bukan tabel Simpul grafik.
is_edge bit Berlaku untuk: Azure SQL Database.

1 = Ini adalah tabel graph Edge.

0 = Ini bukan tabel graph Edge.
ledger_type tinyint Berlaku untuk: Dimulai dengan SQL Server 2022, Azure SQL Database.

Nilai numerik menunjukkan apakah tabel adalah tabel ledger.

0 = NON_LEDGER_TABLE
1 = HISTORY_TABLE (terkait dengan tabel ledger yang dapat diperbarui)
2 = UPDATABLE_LEDGER_TABLE
3 = APPEND_ONLY_LEDGER_TABLE

Untuk informasi selengkapnya tentang ledger database, lihat Ledger.
ledger_type_desc nvarchar(60) Berlaku untuk: Dimulai dengan SQL Server 2022, Azure SQL Database.

Deskripsi teks nilai di kolom ledger_type:

NON_LEDGER_TABLE
HISTORY_TABLE
UPDATABLE_LEDGER_TABLE
APPEND_ONLY_LEDGER_TABLE
ledger_view_id int Berlaku untuk: Dimulai dengan SQL Server 2022, Azure SQL Database.

Saat ledger_type IN (2,3) mengembalikan object_id tampilan ledger, jika tidak, mengembalikan NULL.
is_dropped_ledger_table bit Berlaku untuk: Dimulai dengan SQL Server 2022, Azure SQL Database.

Menunjukkan tabel ledger yang telah dihilangkan.

Izin

Visibilitas metadata dalam tampilan katalog terbatas pada securable yang dimiliki pengguna atau di mana pengguna telah diberi beberapa izin. Untuk informasi selengkapnya, lihat Konfigurasi Visibilitas Metadata.

Contoh

Contoh berikut mengembalikan semua tabel pengguna yang tidak memiliki kunci primer.

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  
  

Contoh berikut menunjukkan bagaimana data temporal terkait dapat diekspos.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru dan 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  

Contoh berikut menunjukkan bagaimana informasi tentang retensi riwayat temporal dapat diekspos.

Berlaku untuk: 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 

Lihat juga

Tampilan Katalog Objek (Transact-SQL)
Tampilan Katalog (Transact-SQL)
DBCC CHECKDB (Transact-SQL)
DBCC CHECKTABLE (Transact-SQL)
Mengkueri FAQ Katalog Sistem SQL Server
OLTP Dalam Memori (Pengoptimalan Dalam Memori)