打开Identity_Insert并设置起始值

4

我在使用 SQL Server,想要将表A中的一些行复制到包含MyColumnID的表B中。

因此,在复制之前,我想在新表中设置Identity_insert tableB ON,在最后设置Identity_insert tableB OFF,并使用IDENTITY(500,1)。

以下是我的代码:

set IDENTITY_INSERT tableB ON
...code...
set IDENTITY_INSERT tableB OFF **with IDENTITY(500,1)** 

我知道最后一行是错误的。有人可以帮我吗?

2
你对 identity_insert 的理解有误。当你将其设置为 ON 时,实际上是在说“要插入值到自增列中”,而当你将其设置为 OFF 时,就是在说“回到自动分配值到自增列中”。在 ON 调用期间告诉系统使用哪些身份值是没有意义的,因为系统不会分配任何值。 - Damien_The_Unbeliever
我已经检查过了,它不会出错。但是为了安全起见,我将使用count+1。谢谢! - S3minaki
2个回答

3

将表Employees的标识种子更改为1000:

DBCC checkident ('Employees', reseed, 1000)

下一行插入将从1001开始。

1
尝试这个:

DBCC CHECKIDENT ('tableB ', RESEED, 500);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接