Прежде чем кто-либо предложит уникальный индекс или ключ, у меня есть очень хороший аргумент в пользу этого.
Я использую этот триггер из триггера для предотвращения вставки повторяющихся данных двух столбцов:
CREATE TRIGGER LogDuplicates ON bkPersonPoints
FOR INSERT
AS
if exists (select * from bkPersonPoints c
inner join inserted i
on c.Name = i.Name and c.Points = i.Points)
begin
rollback
end
GO
Этот ответ принят и имеет 15 голосов, поэтому я ожидаю, что он сработает, но даже при моей самой первой вставке в пустую таблицу:
insert bkPersonPoints (Name, Points) values ('Brady', 100)
Я получаю сообщение об ошибке:
Транзакция завершилась в триггере. Пакет был прерван.
ПРИЛОЖЕНИЕ. Таблица выглядит следующим образом:
CREATE TABLE [dbo].[bkPersonPoints](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Points] [int] NOT NULL
) ON [APP_BR2_User]