Microsoft SQL server 2005 menyediakan 2 mekanisme utama untuk menjaga integritas data, yaitu
- Constrain
- Trigger
- DML trigger = di jalankan pada saat anda memerintah kan program untuk Update, Delete, dan Insert
use sql
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'trCheckKdPeminjam' AND type = 'TR')
DROP TRIGGER trCheckKdPeminjam
GO
CREATE TRIGGER [trCheckKdPeminjam] ON [Trx]
FOR INSERT, UPDATE
AS
IF EXISTS (
SELECT 'TRUE'
FROM inserted i
LEFT JOIN Cust c
ON c.KdPelanggan = i.KdPeminjam
WHERE c.KdPelanggan is NULL
)
begin
Raiserror('Kd Pelaggan yang di maksud tidak ada ',16,10)
rollback tran
end
INSERT INTO Trx
(TrxNo, KdBrg, KdPeminjam)
VALUES (1,1,8)
disini tertulis rollback tran yang artinya apabila terjadi kesalahan pada saat menginsert data maka akan muncul pesan 'Kd Pelaggan yang di maksud tidak ada ' dan akan di rollback ke data awal seperti semula.
Semoga berguna...
apakah roolback di sql tidak menghilang kan data yang sudah di entry, contoh apabila ada admin yang meng update data, namun error. apakah tidak hilang data yang lama.
tentu tidak, karena ada perintah roolback