Juni 18

Table Variable, Global Table Temporary, dan Local Table Temporary

Marhaban Yaa Ramadhan…

Bulan penuh berkah telah tiba. Pada hari pertama di bulan penuh berkah ini, saya akan menjelaskan table variable dan table temporary. Apa itu table variable dan table temporary?

Mungkin teman-teman sudah tidak asing dengan kata-kata table. Yuph, table merupakan tempat untuk penyimpanan data berupa baris dan kolom. Lalu apa yang dimaksud table variable dan table temporary? Apa perbedaan table biasa dalam database dengan table variable dan table temporary? Mungkin untuk membedakan keduanya akan saya urai satu persatu.

1. Table Variable

Table variable merupakan table yang dideklarasikan seperti halnya variable. Penggunaannya biasanya dipakai untuk menyimpan data sementara yang membutuhkan tampungan data seperti sebuah table. Table variable hanya dapat digunakan dalam satu koneksi data (biasanya dalam satu stored procedure) dan satu kali execute. Untuk mendeklarasikan table variable (karena seperti variable, table variable dideklarasikan, bukan di-create), digunakan kata kunci DECLARE dan diberi @ (a keong) sebagai nama variable serta TABLE sebagai tipe datanya. Contoh penggunaan table variable :

Jika kita execute query di atas, maka akan menghasilkan data seperti berikut :

Table Variable

2. Table Temporary

Table temporary sebenarnya hampir sama seperti table variable, namun table temporary dapat digunakan untuk beberapa kali execute. Proses create table temporary dapat dilakukan dengan query SELECT… INTO… selain dengan query CREATE seperti pembuatan table umumnya. Table temporary sendiri dibagi menjadi dua, global dan local table temporary.

  • Local Table Temporary

Local table temporary ditandai dengan kres satu (#). Local table temporary hanya dapat digunakan hanya dalam satu session. Jika kita meng-create local table temporary dalam suatu session, kemudian kita lakukan proses insert, update, maupun delete pada session yang lain maka akan menyebabkan error. Contoh penggunaan Local Table Temporary :

Jika kita execute query di atas, maka akan menghasilkan data seperti berikut :

Local Table Temporary

  • Global Table Temporary

Global table temporary ditandai dengan dua kres (##). Global table temporary dapat digunakan dalam semua session. Jika kita meng-create global table temporary dalam suatu session, maka kita dapat melakukan proses insert, update, maupun delete pada session yang lain. Contoh penggunaan Global Table Temporary :

Jika kita execute query di atas, maka akan menghasilkan data seperti berikut :

Global Table Temporary

Untuk perlu diingat, baik table variable maupun table temporary, pada saat deklarasi maupun create, keduanya akan ter-create secara fisik pada database tempdb pada System Database. Namun untuk table variable, tabel fisik akan otomatis hilang/dihapus (biasanya saat proses eksekusi telah selesai dilakukan). Namun, untuk table temporary, table fisik hanya akan terhapus bila kita melakukan DROP TABLE terhadap table tersebut. Bila kita menjalankan query berikut :

atau :

atau :

Saat kita eksekusi query tersebut, kita akan melihat bahwa object pada database tempdb akan bertambah

Hasil Create

Dari penjelasan di atas, ada beberapa hal penting mengenai table variable dan table temporary yang perlu diperhatikan :

1. Table variables tidak dapat digunakan dalam proses TRANSACTION (dengan query BEGIN TRAN/BEGIN TRANSACTION) sehingga tidak dapat dilakukan proses ROLLBACK.

  1. Perlu diperhatikan untuk melakukan DROP TABLE terhadap table temporary dikarenakan table tersebut akan tetap tersimpan dalam database master dan tentunya akan memperbesar kapasitas database.

Demikian penjelasan singkat mengenai table variable dan table temporary dari saya. Bila ada yang ingin ditambahkan bisa diisi pada kolom komentar. Akhir kata, saya mengucapkan Selamat berpuasa. Semoga segala puasa dan amal ibadah kita diterima ALLAH SWT dan segala sesuatunya menjadi keberkahan untuk kita. Amin… 😀


Copyright 2021. All rights reserved.

Posted Juni 18, 2015 by agunahwan in category "Programming", "Tentang Komputer

Tinggalkan Balasan