【问题标题】: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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-24
        • 1970-01-01
        • 2021-01-20
        • 1970-01-01
        • 1970-01-01
        • 2021-07-11
        相关资源
        最近更新 更多