【发布时间】:2011-05-31 06:36:33
【问题描述】:
我在一个表中有一些行,需要将它们转移到另一个表。在目标表中,我还需要添加一个具有增量值的字段。
我正在执行以下操作,但我知道插入中的某些内容是错误的,因为递增的值 (intCodInterno) 始终相同:
INSERT INTO Emp_VISOT.dbo.TBL_GCE_ARTIGOS ( strCodigo , strDescricao , intCodInterno , intCodTaxaIvaCompra , intCodTaxaIvaVenda , strCodCategoria , strAbrevMedStk , strAbrevMedVnd , strAbrevMedCmp , bitAfectaIntrastat )( SELECT A.Artigo , a.Descricao , IDENT_CURRENT('Emp_VISOT.dbo.TBL_GCE_ARTIGOS')+1, '3' , '3' , '1' , 'Un' , 'Un' , 'Un' , '0' FROM PRIVESAM.DBO.Artigo A)
我需要更改什么以便正确递增值?
谢谢。
编辑:
我在查询中做了一个小改动,现在它可以工作了。 我只是在括号内的 IDENT_CURRENT 中插入一个 SELECT:
(SELECT IDENT_CURRENT('Emp_VISOT.dbo.TBL_GCE_ARTIGOS')+1)
我得到了我需要的所有行,从旧表到新表的增量值。
【问题讨论】:
-
如果您使用
IDENT_CURRENT,则表示您在该表上有一个IDENTITY列;只是不要在列列表中指定该列,也不要向其中插入任何值 -IDENTITY列将在 INSERT 发生时自动获得一个新的唯一值....
标签: sql-server-2008 auto-increment