Temporary table adalah tabel yang keberadaanya hanya sementara di database SQL Server.
Temporary table ini biasanya digunakan untuk menyimpan sekumpulan data hasil query untuk diakses berberapa kali. Paling sering digunakan di dalam stored procedure.
Cara membuat temporary table bisa menggunakan SELECT INTO dan CREATE TABLE.
Sintaks menggunakan SELECT INTO:
select_list
INTO
#temporary_table
FROM
table_name
....
Nama temporary table harus diawali dengan #. Dan sekali dibuat maka selanjut nya dapat diperlakukan seperti table biasa.
Sebagai contoh, Rani akan membuat sebuah temporary table #employeetemp yang akan diisi data yang diambil dari tabel employee.
Query yang digunakan:
first_name, last_name
INTO
#tempEmployee_Table
FROM
dbo.employee
Hasilnya bisa kita lihat di object explorer SQL Server Management Studio. Di System Databases > tempdb > Temporary Tables
Meskipun pada query yang kita membuat nama tabel sendiri, tapi pada tempdb temporary tabel akan tersimpan dengan nama yang ditambahkan urutan supaya nama tabel menjadi unik. Karena jika kita menyimpan pembuatan temporary table ini di dalam stored procedure misalnya, maka ada kemungkinan temporary tabel di buat bersamaan dari tempat/koneksi berbeda.Cara lain untuk membuat temporary table adalah dengan create table seperti membuat table pada umumnya tetapi nama tablenya dimulai dengan # . Contoh saya menggunakan query sebagai berikut:
ID INT,
FullName VARCHAR(201)
);
-- isi temporary table dari select table
INSERT INTO #saleslist(ID, FullName)
SELECT employeeid, full_name FROM employee
-- select temporarty table untuk melihat hasilnya
SELECT * FROM #saleslist
Jika kita membuka tab query baru yang berarti koneksi berbeda maka saat kita select temporary table tersebut akan menghasilkan error seperti gambar di bawah.
Sebagai contoh mari kita tutup jendela SQL yang tadi dibuka. Saat kita refresh tempdb, temporary table sudah terhapus.
Perbedaan hasil dapat kita lihat di System Database --> tempdb --> Temporary Tables, nama yang ditampilkan sama dengan nama yang dibuat di query sehingga mudah dipanggil di tempat koneksi lain.
- Menutup koneksi yang membuat temporary table
- Menghapus dengan menggunakan DROP TABLE, seperti pada table biasa.
0 Comments