Etwa so:
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
Das ist nur zum Einfügen, vielleicht möchten Sie auch Updates in Betracht ziehen.
Aktualisieren
Ein einfacherer Weg wäre, einfach eine eindeutige Einschränkung für die Tabelle zu erstellen, dies wird sie auch für Aktualisierungen erzwingen und die Notwendigkeit eines Triggers beseitigen. Mach einfach:
ALTER TABLE [dbo].[TableName]
ADD CONSTRAINT [UQ_ID_Name_Date] UNIQUE NONCLUSTERED
(
[Name], [Date]
)
und dann sind Sie im Geschäft.