Sql 选择字段作为标识时插入表
我有一个SQL问题 我正在编写类似于此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给出了有关
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;