如何将表插入到包含非标识字段主键的表中

时间:2019-06-19 17:13:20

标签: sql sql-server

我试图在无法更改架构的商业数据库中插入表。插入正在尝试加载数百条记录。我要插入的表包含一个主键字段,而不是“标识”字段。在保持主键字段完整性的同时完成这些插入的最佳方法是什么?

INSERT INTO ADVANCED.BIF006 ( C_CUSTOMER, C_ACCOUNT, C_ADDTYPE, I_BIF006PK)
VALUES (
  '', -- C_CUSTOMER - char(15)
  '', -- C_ACCOUNT - char(15)
  '', -- C_ADDTYPE - char(2)
  ???, -- I_BIF006PK - decimal(15, 0)
)

1 个答案:

答案 0 :(得分:1)

这是一个猜测,因为我没有所有详细信息。希望对您有所帮助。

让我们假设数据加载之前的当前现有表的PK的最大值为1000。然后,新行可以从1001开始。为此,您可以使用序列。例如:

create sequence load_seq1 start with 1001

INSERT INTO ADVANCED.BIF006 ( C_CUSTOMER, C_ACCOUNT, C_ADDTYPE, I_BIF006PK)
VALUES (
  '', -- C_CUSTOMER - char(15)
  '', -- C_ACCOUNT - char(15)
  '', -- C_ADDTYPE - char(2)
  next value for load_seq1, -- I_BIF006PK - decimal(15, 0)
)

drop sequence load_seq1