违反了 PRIMARY KEY 约束 'PK_BuyApply'。

qq_32320747 2018-03-12 08:43:54

消息 2627,级别 14,状态 1,过程 BackBuyApply,第 16 行
违反了 PRIMARY KEY 约束 'PK_BuyApply'。不能在对象 'dbo.BuyApply' 中插入重复键。
update BuyApply set Apply3='同意。'
,ApplyUserID3='1467',
ApplyUser3='51',
ApplyMobile3='138',
ApplyTime3=getdate()
where ApplyID='13'

可是我没有更新ApplyID啊,主键就是ApplyID
...全文
919 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shoppo0505 2018-03-12
  • 打赏
  • 举报
回复
引用 3 楼 qq_32320747 的回复:
[quote=引用 2 楼 shoppo0505 的回复:] 点击表BuyApply, 然后右键,属性,依赖关系,然后第二个选项(英文版为 Objects on which ... depends)
在哪里?找不到[/quote] 不好意思,不用点击属性 点击表BuyApply, 然后右键,依赖关系,然后第二个选项(英文版为 Objects on which ... depends)
中国风 2018-03-12
  • 打赏
  • 举报
回复
引用 6 楼 qq_32320747 的回复:
[quote=引用 5 楼 roy_88 的回复:] 触发器问题,更新时触发,插入一条相同记录 insert into [This_back].[dbo].[BuyApply]--这应该是表名错了吧,插入应该是历史记录表
[This_back这个就是历史记录表[/quote] 一个表的主健是唯一非空的,记录操作应该单独一个表去记日志 把这个表的主健去掉,ApplyID='13'更新有多条记录时也会同时更新,你的情况是更新1次,触发再插入记录1次,会存在2条相同的主健记录,用不了主健或唯一列
吉普赛的歌 2018-03-12
  • 打赏
  • 举报
回复
引用 4 楼 qq_32320747 的回复:
[quote=引用 1 楼 ap0405140 的回复:] 检查BuyApply表上是否有触发器.
有触发器
ALTER TRIGGER [dbo].[BackBuyApply]  
   ON  [dbo].[BuyApply]
   AFTER  DELETE,UPDATE 
AS 
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for trigger here
	insert into  [This_back].[dbo].[BuyApply]
	select getdate() as backtime,* 
	from deleted
END
[/quote] 一条记录如果更新两次, 你这里不是得插入两次, 这样是不是就重复了?
qq_32320747 2018-03-12
  • 打赏
  • 举报
回复
引用 5 楼 roy_88 的回复:
触发器问题,更新时触发,插入一条相同记录 insert into [This_back].[dbo].[BuyApply]--这应该是表名错了吧,插入应该是历史记录表
[This_back这个就是历史记录表
中国风 2018-03-12
  • 打赏
  • 举报
回复
触发器问题,更新时触发,插入一条相同记录 insert into [This_back].[dbo].[BuyApply]--这应该是表名错了吧,插入应该是历史记录表
qq_32320747 2018-03-12
  • 打赏
  • 举报
回复
引用 2 楼 shoppo0505 的回复:
点击表BuyApply, 然后右键,属性,依赖关系,然后第二个选项(英文版为 Objects on which ... depends)

在哪里?找不到
qq_32320747 2018-03-12
  • 打赏
  • 举报
回复
引用 1 楼 ap0405140 的回复:
检查BuyApply表上是否有触发器.
有触发器
ALTER TRIGGER [dbo].[BackBuyApply]  
   ON  [dbo].[BuyApply]
   AFTER  DELETE,UPDATE 
AS 
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for trigger here
	insert into  [This_back].[dbo].[BuyApply]
	select getdate() as backtime,* 
	from deleted
END
shoppo0505 2018-03-12
  • 打赏
  • 举报
回复
点击表BuyApply, 然后右键,属性,依赖关系,然后第二个选项(英文版为 Objects on which ... depends)
唐诗三百首 2018-03-12
  • 打赏
  • 举报
回复
检查BuyApply表上是否有触发器.

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧