Temporal Tables adalah salah satu fitur yang sangat membantu saya , terutama saat terjadi perselisihan mengenai data , dengan temporal table, secara tidak kita sadari sqlserver mencatat perubahan yang terjadi pada data yang ada pada suatu tabel, sehingga kita tidak pernah kehilangan nilai data sebelum data tersebut berubah atau terhapus.
seringkali kita tidak mendesain sebuah tabel memiliki sifat temporal, sehingga case yang sering adalah, kita punya tabel yang telah terpakai , dan harus diubah menjadi temporal. Dan menariknya , dengan memahami cara ini, kita juga dapat mengaplikasikannya pada case pembuatan tabel yang memiliki sifat temporal sejak awal.
Tahapan melakukan konversi ini antara lain sebagai berikut :
- Stop dulu segala transaksi yang akan masuk ke tabel yang ingin dikonversi
- Menyiapkan 2 kolom yang bertipe datetime2 sebagai penanda waktu pada data. biasanya kita menyebutnya sebagai starttime dan datetime.
- Memberi nilai awal pada 2 kolom tersebut, kolom starttime diisikan nilai terkecil, sedangkan endtime diisi nilai terbesar. hal ini berarti data tersebut masih aktif , tidak masuk dalam kategori historical (dilihat dari range waktu antara starttime dan endtime)
- memberi batasan keadaan pada 2 kolom tersebut, bahwa kolom tersebut tidak boleh terisi keadaan NULL
- menambah period pada tabel tersebut yang berisi 2 kolom tersebut
- melakukan konversi pada tabel tersebut menjadi tabel temporal
saya asumsikan anda, dapat mengikuti langkah – langkah tersebut dan anda sudah terbiasa menggunakan SQLServer, namun jika anda adalah kaum rebahan macam saya,
berikut snippet sql yang bisa digunakan,
anda cukup mengganti value dari variabel @table nya
ok sekian, happy SQL ing