在使用ASP.NET将数据插入SQL Server之前,请检查表中的重复项

时间:2012-03-12 10:20:40

标签: asp.net ado.net insert sql-server-2000

我在表格中有3列,我需要在插入新行之前检查电子邮件字段,因此如果电子邮件存在,则不应插入该行。我是否必须通过2个查询才能实现这一目标,例如首先检查:

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

然后运行插入

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

或者有更好的方法来实现这一目标,

任何建议或意见将不胜感激。

由于

2 个答案:

答案 0 :(得分:3)

您可以使用INSERT语句检查条件,只插入一些内容(如果它尚不存在):

IF NOT EXISTS (SELECT * FROM dbo.Product WHERE email = @email)
   INSERT INTO dbo.Product(list of columns)
   VALUES(list of values)

答案 1 :(得分:1)

marc_s所述,您可以使用条件插入。另一方面,在您的电子邮件列中使用唯一约束也可能非常有用!

想想在没有应用程序的情况下插入数据的可能性。没有规则可以避免使用同一封电子邮件!

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

只需google alter / create表格unique constraints