Sql 从文件中使用大容量插入时,前导零消失

Sql 从文件中使用大容量插入时,前导零消失,sql,sql-server,sql-server-2005,csv,bulkinsert,Sql,Sql Server,Sql Server 2005,Csv,Bulkinsert,我正在使用批量插入将数据从csv文件插入SQL表。csv文件中的一列是“ID”列:即,列中的每个单元格都是一个“ID号”,可能有前导零。示例:00117701、00235499等 SQL表中的等效列为varchar(255)类型 当我将数据大容量插入表中时,“ID”列的每个元素中的前导零将消失。换句话说,00117701变为117701,等等 这是列类型问题吗?如果没有,克服这个问题的最佳方法是什么 谢谢 不确定是什么原因导致它去掉前导零,但我过去不得不“修复”一些数据,并做了如下操作: UPD

我正在使用
批量插入
将数据从csv文件插入SQL表。csv文件中的一列是“ID”列:即,列中的每个单元格都是一个“ID号”,可能有前导零。示例:00117701、00235499等

SQL表中的等效列为
varchar(255)
类型

当我将数据大容量插入表中时,“ID”列的每个元素中的前导零将消失。换句话说,
00117701
变为
117701
,等等

这是列类型问题吗?如果没有,克服这个问题的最佳方法是什么


谢谢

不确定是什么原因导致它去掉前导零,但我过去不得不“修复”一些数据,并做了如下操作:

UPDATE <table> SET <field> = RIGHT('00000000'+cast(<field> as varchar(8)),8)
updateset=RIGHT('00000000'+cast(作为varchar(8)),8)

您可能需要根据自己的目的对其进行一些调整,但您可能从中了解到了这一点?

如果您使用文本编辑器打开文件,是否存在0?是的。这是我的第一次检查。你真的有
ID
值,它们的前导零数不同吗?如果是这样,我对你表示同情。但更可能的是,这些仅仅是格式问题,你不应该太在意最终结果。好吧,它们不仅在前导零的数量上有所不同。然而,我将不得不交叉引用这个表和其他表,在这些表中,id确实有前导零。因此,手动添加前导零,或者从另一个表中删除前导零,这样我就可以交叉引用它们,这对我来说是非常烦人的。听起来这些值在转换过程中几乎被转换为int。您使用的是格式化文件吗?谢谢@BWS。我知道该修复方法,但希望从源头上解决问题。。。