Sesuatu seperti ini:
CREATE TRIGGER MyTrigger ON dbo.MyTable
AFTER INSERT
AS
if exists ( select * from table t
inner join inserted i on i.name=t.name and i.date=t.date and i.id <> t.id)
begin
rollback
RAISERROR ('Duplicate Data', 16, 1);
end
go
Itu hanya untuk disisipkan, Anda mungkin ingin mempertimbangkan pembaruan juga.
Perbarui
Cara yang lebih sederhana adalah dengan membuat batasan unik di atas tabel, ini juga akan memberlakukannya untuk pembaruan juga dan menghilangkan kebutuhan akan pemicu. Lakukan saja:
ALTER TABLE [dbo].[TableName]
ADD CONSTRAINT [UQ_ID_Name_Date] UNIQUE NONCLUSTERED
(
[Name], [Date]
)
dan kemudian Anda akan berbisnis.