我有一个当前复制到三个不同位置的数据库。它用于应用程序,并且所有表、存储过程和文章也被选择进行复制。
当我尝试通过存储过程更新 ContactCSR 时,出现以下错误:
消息 2627,级别 14,状态 1,过程 UpdateContactCSRs,第 14 行违反主键约束“PK_ContactCSRs”。无法在对象“dbo.ContactCSRs”中插入重复键。重复键值为 (3443001, dand)。该语句已终止..
存储过程的内容如下:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[UpdateContactCSRs] @Contact int,
@CSR varchar(50),
@Memo varchar(max),
@Notify bit,
@OldCSR varchar(50)
AS
BEGIN
UPDATE ContactCSRs SET CSR = @CSR,Memo = @Memo, Notify = @Notify WHERE Contact = @Contact AND CSR = @OldCSR;
END
但是,当我在过程中运行更新命令时,它可以工作。
不完全确定为什么会发生这种情况,即使更新语句有效,存储过程也不起作用。
这是我正在运行的存储过程命令:
exec UpdateContactCSRs 3443001, 'dand','Relationship Manager',1,'AndyK'
这是我正在运行的更新语句:
UPDATE ContactCSRs SET CSR = 'dand',Memo = 'Relationship Manager', Notify = 1 WHERE Contact = 3443001 AND CSR = 'AndyK'