SQL Server - 在生成的表上自动增量

Kar*_*arl 4 sql-server

这是我正在尝试做的事情:

SELECT * INTO new_table FROM old_table WHERE 1=2;
ALTER TABLE new_table ADD CONSTRAINT pk_new_table_id PRIMARY KEY(id);
SET IDENTITY_INSERT new_table ON
Run Code Online (Sandbox Code Playgroud)

基本上,我想基于现有结构创建一个新表,然后打开ID字段的自动增量.但是,当我尝试插入行时,我得到了这个:

Table 'new_table ' does not have the identity property. Cannot perform SET operation.
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我我做错了什么或我应该如何实现这个目标?

Rem*_*anu 7

您创建的表没有标识列.如果您检查发布的代码,您会注意到没有声明身份.我认为你混淆了PRIMARY KEY和的概念IDENTITY.它们是截然不同的.您无法使用SELECT ... INTO创建具有标识列的表...

  • @RemusRusanu - 你可以做`SELECT IDENTITY(INT,1,1)AS id,foo,bar INTO new_table FROM old_table WHERE 1 = 2; ` (2认同)