Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
Anda mungkin ingin berhenti membuat versi pada tabel temporal Anda baik untuk sementara atau permanen. Anda dapat melakukannya dengan mengatur SYSTEM_VERSIONING klausul ke OFF.
Setel SYSTEM_VERSIONING = NONAKTIF
Hentikan versi sistem jika Anda ingin melakukan operasi pemeliharaan tertentu pada tabel temporal atau tidak lagi membutuhkan tabel berversi. Operasi ini memberikan Anda dua tabel independen:
- Tabel saat ini dengan definisi periode
- Tabel riwayat sebagai tabel biasa
Remarks
Tabel riwayat berhenti mengambil pembaruan selama SYSTEM_VERSIONING = OFF.
Tidak ada kehilangan data yang terjadi pada tabel temporal saat Anda mengatur SYSTEM_VERSIONING = OFF atau menghilangkan SYSTEM_TIME periode.
Ketika Anda mengatur SYSTEM_VERSIONING = OFF dan tidak menghapus periode SYSTEM_TIME, sistem akan terus memperbarui kolom periode untuk setiap operasi penyisipan dan pembaruan. Penghapusan pada tabel saat ini bersifat permanen.
Anda harus menghapus SYSTEM_TIME kolom periode untuk menghilangkan kolom tersebut. Untuk menghapus kolom periode, gunakan ALTER TABLE <table> DROP <column>;. Untuk informasi selengkapnya, lihat Mengubah skema tabel temporal versi sistem.
Saat Anda mengatur SYSTEM_VERSIONING = OFF, semua pengguna dengan izin yang memadai dapat mengubah skema dan konten tabel riwayat, atau bahkan menghapus tabel riwayat secara permanen.
Anda tidak dapat mengatur SYSTEM_VERSIONING = OFF jika Anda memiliki objek lain yang dibuat dengan SCHEMABINDING yang menggunakan ekstensi kueri temporal, seperti yang mereferensikan SYSTEM_TIME. Pembatasan ini mencegah objek ini gagal jika Anda mengatur SYSTEM_VERSIONING = OFF.
Menghapus SYSTEM_VERSIONING secara permanen
Contoh ini menghapus SYSTEM_VERSIONING secara permanen dan menghapus kolom titik. Menghapus kolom periode bersifat opsional.
ALTER TABLE dbo.Department
SET (SYSTEM_VERSIONING = OFF);
Jika diinginkan, hapus periodenya jika Anda ingin mengubah tabel temporal kembali menjadi tabel non-temporal.
ALTER TABLE dbo.Department
DROP PERIOD FOR SYSTEM_TIME;
Hapus sementara SYSTEM_VERSIONING
Operasi berikut mengharuskan Anda mengatur versi sistem ke OFF:
- Menghapus data yang tidak perlu dari riwayat (
DELETEatauTRUNCATE) - Menghapus data dari tabel saat ini tanpa pembuatan versi (
DELETE,TRUNCATE) - Partisi
SWITCH OUTdari tabel saat ini - Partisi
SWITCH INke dalam tabel riwayat
Contoh ini menghentikan SYSTEM_VERSIONING untuk sementara guna memungkinkan Anda melakukan operasi pemeliharaan tertentu. Jika Anda berhenti membuat versi sementara sebagai prasyarat untuk pemeliharaan tabel, sebaiknya lakukan perubahan ini di dalam transaksi untuk menjaga konsistensi data.
Saat Anda mengaktifkan kembali pembuatan versi sistem, tentukan argumen HISTORY_TABLE. Jika tidak, sistem akan membuat tabel riwayat baru dan mengaitkannya dengan tabel saat ini. Tabel riwayat asli masih bisa ada sebagai tabel biasa, tetapi tidak lagi terkait dengan tabel saat ini.
BEGIN TRANSACTION;
ALTER TABLE dbo.Department
SET (SYSTEM_VERSIONING = OFF);
TRUNCATE TABLE [History].[DepartmentHistory]
WITH ( PARTITIONS (1, 2) );
ALTER TABLE dbo.Department
SET (SYSTEM_VERSIONING = ON (HISTORY_TABLE = History.DepartmentHistory));
COMMIT TRANSACTION;
Konten terkait
- tabel temporal
- Mulai menggunakan tabel temporal versi sistem
- Mengelola retensi data historis dalam tabel temporal versi sistem
- Tabel temporal versi sistem dengan tabel memori yang dioptimalkan
- Membuat tabel temporal versi sistem
- Mengubah data dalam tabel temporal versi sistem
- Mengkueri data dalam tabel temporal versi sistem
- Mengubah skema tabel temporal versi sistem