0

我需要将一个表从数据库 A 传输到数据库 B,该表有一个自动增量列。新数据库中表的内容必须与原始数据库中的表相同,包括自动增量列中的值。

以下 LOAD TABLE(其中 col1 是自动增量列)不起作用:

set identity_insert TableName on;
LOAD TABLE TableName
(col1,col2,col3)
FROM 'file.csv';

我收到以下错误:

无法插入或更新列 col1:将选项“identity_insert”设置为包含要修改的标识列的特定表名。

不过,我正在设置 identity_insert 选项。这个命令有什么问题?

4

2 回答 2

1

请试试

SET TEMPORARY OPTION IDENTITY_INSERT = 'MyTable';

这个已经在SCN上讨论过了

于 2014-07-24T05:10:53.000 回答
0

如果您想覆盖默认标识(自动增量)值,则 DEFAULTS OFF 看起来应该用作一个选项。

请参阅: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc00801.1530/doc/html/ san1281564935243.html

如果这不起作用,而这只是一次性的事情......完成此任务的最简单方法是将表加载到没有自动增量的 TableName_work 中,然后通过带有 identity_insert 的 select 语句将数据插入到您的目的地.

于 2014-07-24T04:31:56.570 回答