解决SSMS中的主键冲突问题

时间:2017-07-28 20:15:29

标签: sql sql-server ssms

尝试将某些项目插入表格时,我收到以下错误:

  

Msg 2627,Level 14,State 1,Procedure dba_create_fake_orders,Line 95 [Batch Start line 2]
  违反PRIMARY KEY约束' PK_OrderItem_1'。无法在对象' dbo.OrderItem'中插入重复键。重复键值为(10000,100009)。

以下是我的表格设置方式,以下代码只是用于将这些项目插入表格的代码段:

Table Set UP

INSERT INTO Orders(order_id, customer_id, sub_total, tax_total,
                   grand_total, date_created)
    SELECT 
        @order_id, @customer_id, 0, 0,
        0, @date_created

INSERT INTO OrderItem (order_id, quantity, game_id, price_id)
    SELECT
        @order_id, @quantity, game_id, price_id
    FROM
        GameVersion
    WHERE
        game_id = @game_id

@order@customer_id取自平面客户表,随机选择。 OrderItem表一直是空的,所以我不确定为什么它说有重复错误。唯一填充的表是OrdersGameVersion

之前填充了{p> GameVersionOrders之前就完成了OrderItem。我假设问题是,因为我必须使用密钥然后它可能会抱怨,因为它们可能是相同的数字,但我仍然不确定。

1 个答案:

答案 0 :(得分:0)

如果以下查询返回多行,则表示您的数据集在您在OrderItem中用作PK的列集中具有重复值。

select count(*), game_id from GameVersion GROUP BY game_id having count(*)>1