Sql server SQL Server将int大容量插入到bigint中

Sql server SQL Server将int大容量插入到bigint中,sql-server,bulkinsert,bcp,Sql Server,Bulkinsert,Bcp,我试图使用bcp实用程序将表导出到磁盘,删除数据,将该表上的标识列从int更改为bigint,然后重新导入该数据 当我在数据中使用bcp时,我在bigint列中得到大量的数字,而不是原始标识。我使用to-E开关来保留标识,并更改了bcp格式文件,使其成为fixedlength=4列 这能做到吗 更新:我正在使用-N开关来使用本机数据库类型。我现在尝试使用-w开关,但是现在我得到了一个关于强制转换和文本列数据类型的不同错误。所以答案是可以做到的。但与使用本机数据类型开关-N时出现的情况不同 我使用

我试图使用bcp实用程序将表导出到磁盘,删除数据,将该表上的标识列从int更改为bigint,然后重新导入该数据

当我在数据中使用bcp时,我在bigint列中得到大量的数字,而不是原始标识。我使用to-E开关来保留标识,并更改了bcp格式文件,使其成为fixedlength=4列

这能做到吗


更新:我正在使用-N开关来使用本机数据库类型。我现在尝试使用-w开关,但是现在我得到了一个关于强制转换和文本列数据类型的不同错误。

所以答案是可以做到的。但与使用本机数据类型开关-N时出现的情况不同

我使用了带双管道分隔符| |的-w开关和-t。我需要这个分隔符,因为一些文本值有选项卡和/或管道


我试过批量大小为1000、2500、25000、100000。最佳性能为25000。

您能将数据复制到临时表而不是导出它吗?或者直接更改列?不,此表中有10亿行将数据留在SQL Server中可能比导出和导入数据要快。对不起,我应该添加。源服务器和目标服务器是不同的服务器。编写一个简单的SSIS包怎么样?您可以使用大容量插入,它将允许您相应地强制转换/转换,并将帮助您确定为什么您比一般bcp错误更容易出错