如何使用存储过程避免在数据库表中插入重复记录?

时间:2016-09-02 15:14:22

标签: asp.net sql-server

我有一个包含以下列的数据库表:

  • Banner_Title varchar(500)
  • Existing_Banner_Image varchar(500)
  • Banner_URL varchar(500)
  • Banner_ALT varchar(500)
  • CheckBoxText varchar(500) [这3个复选框已经采取了chkArticles,chkFittness,chkHealthArticle

但我想在插入数据的同时检查复选框。为此我在数据表中添加了一个额外的列,命名为sectionId for chkArticle复选框我将指定10作为sectionId,对于chkFittness sectionId 11和chkHealthArticle为12,所以当我插入banner_title =' article1',点击chkArticle复选框并填写表格格式中提到的其他字段数据,然后应插入数据,但下次我尝试banner_title =' article1'然后单击相同的复选框,然后不允许插入数据。但是当我给banner_name =' article1'并点击另一个复选框chkFittness它应该允许虽然横幅的名称相同,但复选框的维护sectionid是不同的然后需要做什么更改存储过程?基本上我想为每个复选框点击维护唯一的banner_title并区分我维护的sectionid.plz帮助我

1 个答案:

答案 0 :(得分:1)

创建唯一约束:

    USE YourDatebase;   
    GO  
    ALTER TABLE YourTable   
    ADD CONSTRAINT YourConstraintName UNIQUE (Banner_Title);   
    GO

在插入尝试之前检查横幅标题是否存在:

    IF NOT EXISTS(SELECT Banner_Title FROM YourTable WHERE Banner_Title =   
    'TitleYourAreAttemptingToInsert')
    BEGIN
      INSERT .....
    END