sys.tables (Transact-SQL)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics Analytics
Platform 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)