sys.tables (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Mengembalikan baris untuk setiap tabel pengguna dalam database SQL Server.

Nama kolom Jenis data Deskripsi
<inherited columns> 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 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 di 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 pada 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 SET ANSI_NULLS opsi ONdatabase .
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. Akan diatur ulang ke 0 setelah berhasil DBCC CHECKDB berikutnya atau DBCC CHECKTABLE.
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 kecil Nilai LOCK_ESCALATION opsi untuk tabel:

0 = TABLE
1 = DISABLE
2 = AUTO
lock_escalation_desc nvarchar(60) Deskripsi teks opsi lock_escalation untuk tabel. Nilai yang mungkin adalah: TABLE, AUTO, dan DISABLE.
is_filetable bit 1 = Tabel adalah FileTable.

Untuk informasi selengkapnya tentang FileTables, lihat FileTables (SQL Server).

Berlaku untuk: SQL Server 2012 (11.x) dan versi yang lebih baru, dan Azure SQL Database
is_memory_optimized bit Berikut ini adalah nilai yang mungkin:

0 = bukan memori yang dioptimalkan.
1 = memori dioptimalkan.

Nilai 0 adalah nilai default.

Tabel memori yang dioptimalkan adalah tabel pengguna dalam memori, skema yang dipertahankan pada disk yang mirip dengan tabel pengguna lain. Tabel memori yang dioptimalkan dapat diakses dari prosedur tersimpan yang dikompilasi secara asli.

Berlaku untuk: SQL Server 2014 (12.x) dan versi yang lebih baru, dan Azure SQL Database.
durability kecil Berikut ini adalah nilai yang mungkin:

0 = SCHEMA_AND_DATA
1 = SCHEMA_ONLY

Nilai adalah 0 nilai default.

Berlaku untuk: SQL Server 2014 (12.x) dan versi yang lebih baru, dan Azure SQL Database
durability_desc nvarchar(60) 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 bertahan saat menghidupkan ulang database dengan objek memori yang dioptimalkan.

Berlaku untuk: SQL Server 2014 (12.x) dan versi yang lebih baru, dan Azure SQL Database
temporal_type kecil Nilai numerik yang mewakili jenis tabel:

0 = NON_TEMPORAL_TABLE
1 = HISTORY_TABLE (terkait dengan tabel temporal)
2 = SYSTEM_VERSIONED_TEMPORAL_TABLE

Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru, dan Azure SQL Database
temporal_type_desc nvarchar(60) Deskripsi teks jenis tabel:

NON_TEMPORAL_TABLE
HISTORY_TABLE
SYSTEM_VERSIONED_TEMPORAL_TABLE

Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru, dan Azure SQL Database
history_table_id int Ketika temporal_type adalah 2 atau ledger_type , 2mengembalikan object_id tabel yang mempertahankan data historis untuk tabel temporal, jika tidak, mengembalikan NULL.

Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru, dan Azure SQL Database
is_remote_data_archive_enabled bit Menunjukkan apakah tabel diaktifkan Stretch.

0 = Tabel tidak diaktifkan Stretch.
1 = Tabel diaktifkan Stretch.

Untuk informasi selengkapnya, lihat Stretch Database.

Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru, dan Azure SQL Database
is_external bit Menunjukkan tabel adalah tabel eksternal.

0 = Tabel bukan tabel eksternal.
1 = Tabel adalah tabel eksternal.

Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru, Azure SQL Database, dan Azure Synapse Analytics
history_retention_period int Nilai numerik yang mewakili durasi periode retensi riwayat temporal dalam unit yang ditentukan dengan history_retention_period_unit.

Berlaku untuk: SQL Server 2017 (14.x) dan versi yang lebih baru, dan Azure SQL Database
history_retention_period_unit int Nilai numerik yang mewakili jenis unit periode retensi riwayat temporal.

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

Berlaku untuk: SQL Server 2017 (14.x) dan versi yang lebih baru, dan Azure SQL Database
history_retention_period_unit_desc nvarchar(10) Deskripsi teks jenis unit periode retensi riwayat temporal.

INFINITE
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
YEAR

Berlaku untuk: SQL Server 2017 (14.x) dan versi yang lebih baru, dan Azure SQL Database
is_node bit 1 = Tabel simpul grafik.
0 = Bukan tabel simpul grafik.

Berlaku untuk: SQL Server 2017 (14.x) dan versi yang lebih baru, dan Azure SQL Database
is_edge bit 1 = Tabel tepi grafik.
0 = Bukan tabel tepi grafik.

Berlaku untuk: SQL Server 2017 (14.x) dan versi yang lebih baru, dan Azure SQL Database
data_retention_period int Nilai numerik yang mewakili durasi periode retensi data dalam unit yang ditentukan dengan data_retention_period_unit.

Berlaku untuk: Azure SQL Edge saja
data_retention_period_unit int Nilai numerik yang mewakili jenis unit periode retensi data.

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

Berlaku untuk: Azure SQL Edge saja
data_retention_period_unit_desc nvarchar(10) Deskripsi teks jenis unit periode retensi data.

INFINITE
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
YEAR

Berlaku untuk: Azure SQL Edge saja
ledger_type kecil 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.

Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru, dan Azure SQL Database
ledger_type_desc nvarchar(60) Deskripsi teks nilai dalam ledger_type kolom:

NON_LEDGER_TABLE
HISTORY_TABLE
UPDATABLE_LEDGER_TABLE
APPEND_ONLY_LEDGER_TABLE

Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru, dan Azure SQL Database
ledger_view_id int Saat ledger_type IN (2, 3) mengembalikan object_id tampilan ledger, jika tidak, mengembalikan NULL.

Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru, dan Azure SQL Database
is_dropped_ledger_table bit Menunjukkan tabel ledger yang dihilangkan.

Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru, dan Azure SQL Database

Izin

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

Contoh

J. Mengembalikan semua tabel pengguna tanpa kunci primer

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

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 versi 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;

C. Mencantumkan informasi tentang retensi riwayat temporal

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

Berlaku untuk: SQL Server 2017 (14.x) dan versi yang lebih baru, dan 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;