Sql 选择字段作为标识时插入表

Sql 选择字段作为标识时插入表,sql,sql-server,Sql,Sql Server,我有一个SQL问题 我正在编写类似于此SQL语句的内容 if object_id('G2Records') is not null drop table g2records WITH G2Records AS ( SELECT * FROM table_A a LEFT OUTER JOIN table_B ON A.id = B.table_A_Id ) SELECT identity(1,1) AS id, * INTO table_c FROM G2Records SQL给出了有关

我有一个SQL问题

我正在编写类似于此SQL语句的内容

if object_id('G2Records') is not null
drop table g2records

WITH G2Records AS
 (
SELECT *
FROM table_A a
LEFT OUTER JOIN table_B ON A.id = B.table_A_Id
 )
SELECT identity(1,1) AS id, *
INTO table_c
FROM G2Records
SQL给出了有关标识的错误信息

基本上,是否有一种方法可以将标识字段插入到我每次运行此SP时都要删除的表中??显然,table_c.id会重置回来,这没关系

但我之所以想要这样的东西,是因为表a经常会添加字段,所以我不想为表c编写一个创建脚本,其中包含来自表a和一些表b的确切字段,因为每次有人向表a或表b添加字段时,我都需要返回到此SP并进行修改。这不像其他部门在添加新字段时告诉我的那样

身份领域只是为了我们正在进行的一些新的开发,这是需要的

SQL不必像我所拥有的那样,只要它能满足我的要求:)


提前谢谢

函数的
IDENTITY()
的第一个参数是数据类型,必须指定它。这在中有明确的概述,当您遇到错误和/或猜测语法时,它通常应该是您的第一个资源,但它不起作用。在这里发布问题时,请不要说
SQL给出错误
,而是发布实际的错误消息。e、 g:

味精102,第15级,状态1,第5行
“1”附近的语法不正确

这似乎不是很有帮助,但具体一点比含糊其辞要好得多

尝试:


您要选择的表是否将此列作为标识?如果是,只需插入其他字段,它就会处理标识。如果这只是一个整数字段,请查看ROW_Number()函数以获得唯一的行id。@liebs SELECT into创建了一个新表,因此“您正在选择的表”甚至还不存在。@liebs-亚伦说的:)是的,表在那一点上不存在。我现在看到了,看起来他在下面的答案中击败了我!
;WITH G2Records AS
(
  SELECT *
  FROM dbo.table_A AS a
  LEFT OUTER JOIN dbo.table_B AS b
  ON A.id = B.table_A_Id
)
SELECT IDENTITY(INT,1,1) AS id, *
----------------^^^ salient part right here
  INTO dbo.table_c
  FROM G2Records;