2

我试图将一行从一个数据库复制到不同服务器上的另一个数据库,这是查询:

set identity_insert ms_tpl on

INSERT ms_tpl select * from [10.24.0.2].[MILKP].[dbo].[ms_tpl] where [id] = 3076

set identity_insert ms_tpl off

当我按 F5 时,我收到如下错误消息:

消息 8101,第 16 层,状态 1,第 3 行

只有在使用列列表并且 IDENTITY_INSERT 为 ON 时,才能为表“ms_tpl”中的标识列指定显式值。

我的查询有错误吗?如何解决这个问题呢?

更多信息:在数据库上ms_tpl,有一列称为id自动增量。

谢谢

4

2 回答 2

6

只有在使用列列表 并且 IDENTITY_INSERT 为 ON时,才能为表“ms_tpl”中的标识列指定显式值。

不要使用*. 列出您的列:

INSERT into ms_tpl (col1, col2, ...) select col1, col2, ... from ...
于 2012-05-21T08:22:01.227 回答
0

在插入语句中添加列列表

INSERT ms_tpl column1, column2, ...

这将解决问题

于 2012-05-21T08:23:41.430 回答