Noget som dette:
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
Det er bare for at indsætte, du vil måske også overveje opdateringer.
Opdater
En enklere måde ville være blot at skabe en unik begrænsning på bordet, dette vil også håndhæve den for opdateringer og fjerne behovet for en trigger. Bare gør:
ALTER TABLE [dbo].[TableName]
ADD CONSTRAINT [UQ_ID_Name_Date] UNIQUE NONCLUSTERED
(
[Name], [Date]
)
og så er du i gang.