【问题标题】:How to INSERT INTO Table with SELECT and auto incremented field如何使用 SELECT 和自动递增字段插入表
【发布时间】:2014-08-09 03:35:06
【问题描述】:

我正在尝试从我创建的表中插入生产表 - 我之前能够使用我认为会导致重复并且没有填充主键的公式来执行此操作(在这种情况下 PROSPECT_ID 正确。因为它是一个自动递增的字段,我正在使用从另一个表中选择来插入有关如何在生产中正确自动递增该字段的任何帮助?MKT_PROSPECT

INSERT INTO MKT_PROSPECT(PROSPECT_ID,RECORD_TYPE,search_name,LABEL_NAME,FIRST_NAME,LAST_NAME,CUSTOMER_CLASS_CODE,CUSTOMER_STATUS_CODE,COMPANY_NAME,JOB_TITLE,FORMATTED_DETAIL,ADDRESS_1,ADDRESS_2,CITY,STATE,POSTAL_CODE,ADDRESS_TYPE_CODE,ADDRESS_STATUS_CODE,HOME_PHONE,EMAIL,ADDOPER) 
select PROSPECT_ID,RECORD_TYPE,SEARCH_NAME,LABEL_NAME,FIRST,LAST,CUSTOMER_CLASS_CODE,CUSTOMER_STATUS_CODE,COMPANY,TITLE,FORMATTED_DETAIL,ADDRESS1,ADDRESS2,CITY,STATE,ZIP,ADDRESS_TYPE_CODE,ADDRESS_STATUS_CODE,PHONE,EMAIL,ADDOPER from dbo.prospects  
where SEARCH_NAME IS not NULL and LABEL_NAME is not null

【问题讨论】:

  • 打开“IDENTITY INSERT ON”
  • 如果 PROSPECT_ID 是自动递增的,请不要插入/选择该字段,它应该会自动正确填充。
  • @John Hartsock 在我的桌子上 dbo.prospects?
  • 您是否尝试插入预先指定的“自动增量”值(也称为代理键)?
  • @Philip Kelley 我正在尝试让 MKT_PROSPECT 表自动填充自动递增的 id PROSPECT ID。

标签: sql-server insert auto-increment


【解决方案1】:

如果您想插入具有特定 ID 的表,请使用 IDENTITY INSERT ON,正如 John Hartsock 在 cmets 中所说的那样。值得注意的是,自增列会在最大数之上继续所有其他的插入(Identity Insert 范围之外)。

如果您打算插入并让表格自动生成,您只需不要在插入中包含 ID 列:

INSERT INTO MKT_PROSPECT(RECORD_TYPE,search_name,
                         LABEL_NAME,FIRST_NAME,LAST_NAME,CUSTOMER_CLASS_CODE,
                         CUSTOMER_STATUS_CODE,COMPANY_NAME,JOB_TITLE,
                         FORMATTED_DETAIL,ADDRESS_1,
                         ADDRESS_2,CITY,STATE,POSTAL_CODE,
                         ADDRESS_TYPE_CODE,ADDRESS_STATUS_CODE,
                         HOME_PHONE,EMAIL,ADDOPER) 

             select RECORD_TYPE,SEARCH_NAME,LABEL_NAME,FIRST,LAST,
                    CUSTOMER_CLASS_CODE,CUSTOMER_STATUS_CODE,COMPANY,TITLE,
                    FORMATTED_DETAIL,ADDRESS1,ADDRESS2,CITY,STATE,ZIP,
                    ADDRESS_TYPE_CODE,ADDRESS_STATUS_CODE,
                    PHONE,EMAIL,ADDOPER from dbo.prospects  
                    where SEARCH_NAME IS not NULL and LABEL_NAME is not null

【讨论】:

  • 这在 OP 的情况下根本没有帮助。虽然答案是正确的。
  • @Rahul 答案基于 OP 详细介绍该问题之前的原始帖子。感谢您在这里反映这一点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-25
  • 2012-10-23
相关资源
最近更新 更多