挿入および更新中に、テーブル内の重複レコードをチェックする必要があります。以下は私の質問です。挿入の場合は正常に機能しますが、更新時に失敗します。私はそれを理解することができません。私を助けてください。
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 とビジネス名は、挿入/更新の両方で一意である必要があります。したがって、挿入および更新中に確認する必要があります。