SQL导入向导丢弃前导零

我已经阅读了所有有关为数字加前缀的post,并在连接string中设置IMEX = 1; 似乎没有什么好办法给我。

这里是设置:混合数据的Excel列 – 99%的数字(一些从0开始)1%的文本。

PROGRAMATICALLY导入到SQL Server 2005表/列types – varchar(255)。

导入在本地工作正常,但是一旦我将代码移到生产(GoDaddy),它将删除列中的前导0。

有任何想法吗?

ps我知道registry变更的解决scheme,事实上 – 价值被设置为0在我的开发盒,但答案让我意识到价值没有设置在生产服务器:)

ISAM驱动程序仅对前8行进行采样,但可以通过registry更改来更改该行为:

http://sqlserversd.wordpress.com/2008/09/14/ssis-excel-values-import-as-nulls/

但是,是的,使用Excel进行机器到机器的数据传输是一场噩梦…难道没有其他办法可以发送数据吗?

是。 Excel驱动程序仅采样前8行以确定数据types。 这意味着它假定列是数字是“bob”不出现在第1到第8行。

目标表列数据types是不相关的。

这个问题已经存在很长时间了 ,我第一次看到它在2003年。

BOL关于excel导入的注意事项

我们通常将文件保存为.csv文件或.txt文件,然后问题不会发生。

这是一个快速和棘手的方式。 遵循这些步骤,但首先将实际的Excel表中的所有数据/列和行复制到另一个Excel表中,以保证安全性,从而获得与之相比较的实际数据。

脚步:

  1. 复制列中的所有值并将其粘贴到记事本中。
  2. 现在将列types更改为Excel表格中的文本(它将修剪前后的零),不用担心。
  3. 转到记事本并复制刚刚粘贴的所有值。
  4. 转到您的Excel表格,并粘贴在同一列的值。

如果您有多个具有0值的列,请重复相同的操作。 现在你的excel文件已经准备好用零值来导入:)。

快乐的时光。