Zoiets als dit:
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
Dat is alleen om in te voegen, misschien wilt u ook updates overwegen.
Bijwerken
Een eenvoudigere manier zou zijn om gewoon een unieke beperking op de tafel te creëren, dit zal het ook voor updates afdwingen en de noodzaak voor een trigger wegnemen. Gewoon doen:
ALTER TABLE [dbo].[TableName]
ADD CONSTRAINT [UQ_ID_Name_Date] UNIQUE NONCLUSTERED
(
[Name], [Date]
)
en dan ben je in zaken.