Проверьте наличие дубликатов в таблице, прежде чем вставлять данные в SQL Server с ASP.NET - PullRequest
0 голосов
/ 12 марта 2012

У меня есть 3 столбца в таблице, мне нужно проверить поле электронной почты перед вставкой новой строки, поэтому, если электронная почта существует, она не должна вставлять эту строку.Должен ли я пройти 2 запроса для достижения этой цели, например, сначала проверьте:

Select count(*) FROM PRODUCT WHERE email = @email

И ЗАПУСК ВСТАВКИ

Insert INTO PRODUCT (....) VALUES (....)

Или есть ли лучший способ добиться этого,

Будем благодарны за любые предложения или советы.

Спасибо

Ответы [ 2 ]

3 голосов
/ 12 марта 2012

Вы можете иметь оператор INSERT, который проверяет условие и вставляет что-то, только если оно еще не существует:

IF NOT EXISTS (SELECT * FROM dbo.Product WHERE email = @email)
   INSERT INTO dbo.Product(list of columns)
   VALUES(list of values)
1 голос
/ 12 марта 2012

Как упоминалось marc_s, вы можете использовать условную вставку в.С другой стороны, использование уникального ограничения в столбце электронной почты также может быть очень полезным!

Только подумайте о возможности вставки данных без вашего приложения.Не было бы правила, чтобы избежать того же электронного письма!

CREATE TABLE Product
(
   xxx int NOT NULL,
   xxx xxx xxx,
   UNIQUE (email)
)

Просто Google для изменить / создать таблицы (таблицы) с уникальные ограничения !

...