0

我需要在插入和更新时检查表中的重复记录。以下是我的查询。在插入的情况下它工作正常,但在更新时失败。我无法弄清楚。请帮我。

Insert:

Set @Count =  (Select ISNULL(Count(*),0) From AccountMaster Where [Name] = @Name and Id=@Id and Flag=1);
If @Count >0 and @InsertUpdateFlag=1
  BEGIN
    Set @DbErrormessage = 'Business Name and Account Id must be unique. Try again.';
  END   

更新 :

Set @Count =  (Select Count(*) From AccountMaster Where [Name] = @Name and Id <> @Id and Flag=1);
 If @Count >0 and @InsertUpdateFlag=2
  BEGIN
   Set @DbErrormessage = 'Business Name is in already in use by some other account. Try another one.';
  END

更新的条件是Id和Name不能存在于数据库中。因此,我正在计算名称与任何其他 ID 不存在的情况。但似乎,不工作。

下面是我的表模式。

SELECT [PkId] //Primary Key as Int
      ,[Id]  // Unique Key varchar(25)
      ,[Created]
      ,[Type]
      ,[Status]
      ,[Name]  //Business Name
      ,[ContactPerson]
      ,[ContactNumber]
      ,[Email]
      ,[Address]
      ,[LocationId]
      ,[Remarks]
      ,[Flag]
  FROM [AccountMaster]

ID 和企业名称在插入/更新时必须是唯一的。所以我需要在插入和更新时检查它。

4

1 回答 1

1

将唯一约束放在名称中并忘记检查,您可以处理约束违规,然后您知道名称已经存在

于 2012-07-05T10:46:11.170 回答