|
Kita tahu bahwa SQL Server memiliki ekstensi SQL sendiri yang mereka
namakan dengan T-SQL atau Transact SQL. Dengan adanya T-SQL ini maka
beberapa proses yang sebelumnya harus dicapai dengan cara yang lebih
kompleks dengan ANSI SQL, sekarang akan menjadi mudah. Beberapa
waktu yang lalu penulis sempat berdiskusi dengan salah seorang
pembaca mengenai perbandingan jika kita memanfaatkan T-SQL dan ANSI
SQL. Tulisan kali ini akan mencoba memberi contoh mengenai bagaimana
praktisnya jika kita menulis code SQL dengan memanfaatkan T-SQL.
Sebelumnya mungkin Anda sudah terbiasa dengan kolom pada tabel yang
sifatnya auto-increment ketika suatu nilai baru diinsert ke
dalamnya. Jika Anda pernah menggunakan MS Access, maka Anda akan
menemui tipe data AutoNumber untuk mencapai hal tersebut. SQL Server
tidak memiliki tipe data yang menyebabkan suatu kolom menjadi
bersifat auto-increment. Namun, SQL Server bisa melakukannya dengan
cara menambahkan property tambahan pada definisi kolom tabel
sehingga ini akan mengindikasikan fungsi auto-increment pada saat
suatu nilai baru diinsertkan ke kolom pada tabel tersebut.
Contoh perintah CREATE TABLE berikut ini akan menunjukkan kepada
Anda mengenai cara membuat fungsi auto-increment pada salah satu
kolomnya. Kolom tersebut akan auto-increment dengan nilai
pertambahan 1 ketika suatu row baru ditambahkan ke tabel tersebut.
create table
pelanggan
(
cust_id int identity(1,1) primary key,
cust_name varchar(30)
)
Kolom cust_id didefinisikan dengan tipe data int (integer) dan
diberi property IDENTITY yang membuatnya auto-increment dengan
pertambahan 1 setiap baris data baru ditambahkan. (1.1) setelah
property IDENTITY menandakan seed (nilai awal) dan nilai
pertambahannya. Jika misalnya Anda menginginkan nilai awalnya adalah
10 dan nilai pertambahannya 5, maka Anda bisa menuliskan (10,5).
Jika (1,1) tidak ada, maka secara otomatis property IDENTITY akan
memiliki seed 1 dan pertambahan nilainya juga 1.
Berikutnya kita akan tambahkan suatu data baru ke dalam tabel
pelanggan tersebut. Kita lihat perintah INSERT berikut ini.
insert into
pelanggan (cust_name) values ('Ariesa Rahardjo')
Kemudian SELECT tabel tersebut dengan perintah berikut ini.
select * from
pelanggan
Maka hasilnya akan nampak seperti berikut ini.

Kita lihat pada perintah INSERT di atas tidak perlu lagi
menambahkan kolom cust_id untuk diisi dengan suatu nilai karena
secara otomatis SQL Server akan mengisi nilai baginya dengan sifat
auto-increment.
Melakukan hal di atas dengan ANSI SQL
Pada ANSI SQL tidak ada property pada kolom seperti property
IDENTITY di atas. Jika Anda menginginkan hasil seperti di atas
dengan ANSI SQL, maka kita harus memodifikasi perintah INSERT.
Intinya pada proses INSERT akan terjadi kalkulasi pada kolom cust_id
agar menimbulkan efek auto-increment seperti di atas. Berikut ini
kita akan kembali mendemonstrasikan teknik di atas tetapi dengan
menggunakan ANSI SQL. Sebelumnya kita akan membuat tabel baru lagi
dengan nama pelanggan_ansi.
create table
pelanggan_ansi
(
cust_id int primary key,
cust_name varchar(30)
)
Perintah INSERT berikut ini akan mengkalkulasi nilai secara
dinamis bagi kolom cust_id agar efeknya bisa seperti auto-increment.
insert
pelanggan_ansi select coalesce(max(cust_id)+1,1),
'Ariesa Rahardjo' from pelanggan_ansi
Hasilnya akan seperti berikut ini.

Saat ini belum begitu penting untuk mengerti bagaimana mengetahui
perintah INSERT bekerja. Tetapi intinya dengan demonstrasi di atas
bisa menunjukkan betapa mudahnya jika Anda menggunakan T-SQL untuk
menyelesaikan suatu kasus tertentu dibandingkan dengan menggunakan
ANSI SQL. Memang ada beberapa pendapat bahwa sedapat mungkin jika
menuliskan perintah SQL maka kita harus memanfaatkan ANSI SQL agar
bisa diporting dengan mudah ke RDBMS lainnya. Akan tetapi pada
kenyataannya, seringkali aplikasi yang kita buat biasanya hanya akan
menggunakan satu produk RDBMS saja. Tentu saja hal ini akan tidak
berlaku jika Anda adalah suatu vendor besar yang membuat aplikasi
skala enterprise dan memang dirancang agar bisa jalan pada seluruh
RDBMS. Contoh aplikasi seperti ini adalah SAP misalnya.
Referensi
- Garth Wells, Code Centric: T-SQL Programming with Stored
Procedures and Triggers, 2000, ISBN 1-893115-83-6, Apress.
Demikian tulisan singkat mengenai contoh perbandingan pemanfaatan
T-SQL dengan ANSI SQL pada SQL Server 2000. Semoga berguna bagi Anda
semuanya. Jika ada komentar atau saran bisa dikirimkan melalui
ariesa.rahardjo@gmail.com. Jika Anda memiliki ide atau tips
menarik, silakan saja tulis dan kirimkan kepada kami melalui
article@sony-ak.com. Untuk membaca tulisan menarik lainnya
silakan menuju ke situs Sony AK Knowledge Center dengan alamat di
www.sony-ak.com.
Terima kasih.
| Send
your comments or suggestions |
|
|
|