【问题标题】:Check for duplicates in the table before inserting data into SQL Server with ASP.NET在使用 ASP.NET 将数据插入 SQL Server 之前检查表中的重复项
【发布时间】:2012-03-28 17:54:40
【问题描述】:
我在表中有 3 列,我需要在插入新行之前检查电子邮件字段,所以如果电子邮件存在,它不应该插入该行。我是否必须通过 2 个查询来实现这一点,所以首先检查:
Select count(*) FROM PRODUCT WHERE email = @email
然后运行插入
Insert INTO PRODUCT (....) VALUES (....)
或者有没有更好的方法来实现这一点,
任何建议或意见将不胜感激。
谢谢
【问题讨论】:
标签:
asp.net
ado.net
insert
sql-server-2000
【解决方案1】:
您可以有一个INSERT 语句来检查条件,并且只插入不存在的内容:
IF NOT EXISTS (SELECT * FROM dbo.Product WHERE email = @email)
INSERT INTO dbo.Product(list of columns)
VALUES(list of values)
【解决方案2】:
正如marc_s 提到的,您可以使用条件插入。另一方面,在您的电子邮件列中使用唯一约束可能也很有帮助!
想想在没有您的应用程序的情况下插入数据的可能性。没有规则可以避免同一封电子邮件!
CREATE TABLE Product
(
xxx int NOT NULL,
xxx xxx xxx,
UNIQUE (email)
)
只需谷歌搜索alter/create 表和unique constraints!