【发布时间】:2014-08-17 14:16:24
【问题描述】:
我正在尝试使用 bcp 实用程序将表导出到磁盘,删除数据,将该表上的标识列从 int 更改为 bigint,然后重新导入该数据。
当我“bcp in”数据时,我在 bigint 列中得到大量数字,而不是原始标识。我正在使用 to -E 开关来保留身份,并且我已经更改了 bcp 格式文件,使其成为一个固定长度 = 4 列。
这个可以吗?
更新:我正在使用 -N 开关来使用本机数据库类型。我现在尝试使用 -w 开关,但现在我得到了关于强制转换和文本列数据类型的不同错误。
【问题讨论】:
-
你能把数据复制到临时表而不是导出吗?还是直接改列?
-
不,这个表有十亿行
-
将数据留在 SQL Server 中可能比导出和导入数据要快。
-
对不起,我应该添加的。源服务器和目标服务器是不同的服务器。
-
写一个简单的SSIS包怎么样?您可以使用批量插入,它将允许您进行相应的转换/转换,并帮助您确定错误的原因(比一般 bcp 错误更好)
标签: sql-server bulkinsert bcp