Saturday - May 10, 2008

Home | Site Map | Channels | Profile | Press Room | Services | Contact 

currently 8 user(s) online

search 

   Latest News

»

sony-ak.com Luncurkan Kamus Teknologi Informasi (May 27, 2006)

»

sony-ak.com Luncurkan IT Event Calendar (May 20, 2006)

»

Web Chat Berbasis AJAX dari sony-ak.com (May 09, 2006)

»

sony-ak.com Advertising Program (May 01, 2006)

»

Sony AK di Tabloid PCplus (April 18, 2006)

news archives » 


   Random Article

»

Mengirim E-Mail Melalui Server SMTP dengan C# (3571)

»

Apa itu Blog? (5103)

»

Mengenal Spam - Part I: Overview (2598)

»

Interorganizational Information Systems (IOS) (2073)

»

Mengedit DTS Package di dalam Yukon (1580)

   Newsletter

Join our newsletter, you will get alert about content updates

powered by Yahoo! Groups















Nedstat Basic - Free web site statistics

 
 
SQL Server 2000: Contoh ANSI SQL Dibandingkan dengan T-SQL

Author: Ariesa Rahardjo
Published: April 08, 2006
Visits: 3031 - Category: SQL Server
 
     
 

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.




 Recommended articles
 

»

Submit URL Website Anda di Yahoo! (3142)

»

Tips MySQL: Memformat Output pada Database MySQL (1400)

»

Dumping dan Restore Database Pada MySQL (3755)

»

Tips PHP: Cara Memvalidasi Alamat E-mail (2690)

»

Mengenal Bahasa Pemrograman Erlang (2634)

 Send your comments or suggestions
Full Name :
E-mail :
Comments :
 
 

  Privacy | Site Map | Advertise

  Copyright © 2003 - 2006 Sony AK Knowledge Center - all rights reserved

  info@sony-ak.com