Insert Data Ke 2 Tables Sekaligus Dengan 1 Statement Tanpa Trigger

Biasanya kita menggunakan trigger untuk dapat memasukkan data ke dalam 2 tabel yang berbeda sekaligus. 1 tabel target yang akan dimasukkan data yang kemudian dibuatkan trigger yang kemudian trigger tersebut akan melakukan proses insert ke tabel ke 2. Atau mungkin ada yang lebih manual lagi yaitu dengan membuat 2 statement yaitu statement ke-1 untuk insert data ke tabel pertama dan statement ke-2 untuk insert data ke tabel yang ke dua. dan cara yang kedua ini yang biasanya banyak dilakukan oleh para programmer.., termasuk saya.., hee..!

Namun dalam perkembangannya, Insert Statement saat ini memiliki sub-klausa OUTPUT. dengan memanfaatkan sub-klausa OUTPUT tersebut kita dapat membuat 1 buah statement insert yang dapat melakukan insert data ke 2 buah tabel sekaligus.

OK, Langusng saja ke TKP.

Misalkan kita mempunyai 2 tabel yaitu tabel penjualan dengan nama TPenjualan dan tabel detail penjualan dengan nama TDetailPenjualan. Tabel TPenjualan memiliki field No_Penjualan, Tgl_Penjualan, Kode_Customer dan tabel detail penjualan memiliki field No_Penjualan,Kode_Barang, jumlah.

Dengan 1 statement dibawah ini kita bisa memasukkan (insert) data kedalam tabel TPenjualan dan TDetailPenjualan sekaligus tanpa harus membuat triger. Berikut contohnya:

INSERT INTO TPenjualan (No_Penjualan, Tgl_Penjualan, Kode_Customer)
OUTPUT INSERTED.'P-00001', 'B-0001','10'
INTO TDetailPenjualan (No_Penjualan, Kode_Barang, Jumlah)
VALUES  ('P-00001','2012-02-20','C-00001');

Selamat mencoba…, Dan semoga bermanfaat.

Sumber: http://sqlserver-indo.org

12 Responses to “Insert Data Ke 2 Tables Sekaligus Dengan 1 Statement Tanpa Trigger”

  1. ojan Says:

    klo ke 3 tabel sekaligus bisa di pake ga?
    klo bisa caranya gimana tolong d kasih tau yah..

    • Admin Says:

      wah untuk yang 3 tabel saya belum nemu boz…

  2. ahder Says:

    kok saya gk bisa ya..
    ada pesan kyk gini..
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘ OUTPUT INSERTED.’aku coba’, ‘coba’,’coba’, ‘mahasiswa’ INTO tb_data_diri (usern’ at line 1

    • Admin Says:

      wah itu syntax untuk database Microsoft SQL server om.., untuk yang MySql saya belum pernah coba…

  3. codebreaker Says:

    tiga table bisa om, saya pernah coba

    • Admin Says:

      wah sip om, mohon di share kalo bisa dan pasti bermanfaat untuk temen-temen yang lain…

    • hery Says:

      gan,
      boleh d share query nya untuk yang 3 tabel,🙂

  4. jabbarbie Says:

    wah. untuk sql server ya om.. itu akan jadi masalah jika kode penjualan bersifat auto increment.

  5. yohan Says:

    insert into form_tampung(nim_user)
    output inserted. ‘1211504657’
    into form_cek(nim_user,nama_user,sandi_user,email_user)
    values (‘1211504657′,’joko’,’1′,’qq’);

    pas aku execute query nya,ga bisa. knp ya? mohon bantuannya ya,terima kasih.

  6. Ana Nj Says:

    kalo mengupdate 3 tabel sekaligus dalam 1 statement gimana ya?? berdasarkan item_code di masing2 tabel

  7. dyan1.blogspot.com Says:

    gan kalau fildnya jumlahnya gak sama gmana gan bisa gak?

    • Admin Says:

      bs aja, tinggal sebutin aja nama field nya..


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: