Biasanya kita menggunakan trigger untuk dapat melakukan 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.
Namun dalam perkembangannya, Insert Statement saat ini di 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.
Mari kita coba praktekkan bersama-sama :
contoh kasusnya adalah sebagai berikut, di departemen TI memiliki policy bahwa setiap penambahan user baru pada sebuah aplikasi harus melakukan penggantian password dalam kurun waktu 7 hari. dalam 7 hari tersebut, user akan selalu diingatkan oleh sistem setiap login untuk pengganti passwordnya sampai user tersebut mengganti password.
Pertama kita akan membuat 2 buah tabel yaitu tabel DftrUser dan tabel TblPengingat
USE AdventureWorks;
GO
CREATE SCHEMA [Pengguna] AUTHORIZATION dbo;
GO
CREATE TABLE [Pengguna].[DftrUser]
(
[PenggunaID] [int] IDENTITY(1,1) NOT NULL,
[Nama] VARCHAR(30) NOT NULL,
[Password] VARCHAR(30) NOT NULL,
CONSTRAINT [PK_PenggunaID] PRIMARY KEY CLUSTERED
(
[PenggunaID] ASC
)ON [PRIMARY]
) ON [PRIMARY];
GO
CREATE TABLE [Pengguna].[TblPengingat]
(
[PengingatID] [int] IDENTITY(1,1) NOT NULL,
[PenggunaID] [int] NOT NULL,
[Tgl] DATETIME NOT NULL,
[SttPengguna] CHAR(1) NOT NULL,
CONSTRAINT [PK_PengingatID] PRIMARY KEY CLUSTERED
(
[PengingatID] ASC
)ON [PRIMARY]
) ON [PRIMARY];
GO
Sekarang kita coba untuk memasukkan data-data yang diperlukan untuk proses diatas dengan menggunakan 1 buah statement tanpa menggunakan trigger
INSERT INTO [Pengguna].[DftrUser] ( Nama, password )
OUTPUT INSERTED.PenggunaID,
DATEADD(d,7,GETDATE()),'0'INTO[Pengguna].[TblPengingat]
(
PenggunaID,
Tgl,
SttPengguna
)
VALUES ( 'Suherman','K4taSand1');
dan berikut hasilnya :
select * from [Pengguna].[DftrUser] Go select * from [Pengguna].[TblPengingat] Go
tampak bahwa data telah masuk ke kedua tabel tersebut dengan hanya menggunakan 1 statement DML saja.
Demikian semoga bermanfaat.
Alhamdulillah telah dipercaya untuk memberikan workshop GIS dengan menggunakan perangkat lunak QGIS di PT. AIR…
Terimakasih atas kepercayaannya kepada kami sehingga terselenggara Workshop QGIS utk PERUMDA AM Tirta Ratu Samba…
terimakasih atas kepercayaan Perumda Tirta Kahuripan Kab Bogor kepada saya utk mengimplementasikan GIS Online yang…
Para operator #GIS kadang mendapatkan sebuah gambar situasi yang diperoleh dari kondisi dilapangan yang kemudian…
Snapping di QGIS. teknik ini sifatnya wajib untuk dikuasai oleh para operator QGIS dalam kegiatan…
Epanet (Environmental Protection Agency Network ) adalah sebuah program komputer yang memiliki kemampuan melaksanakan simulasi…