我已经阅读了有关使用'前缀数字的所有帖子,并在连接字符串中设置IMEX = 1;似乎没有什么可以为我做的。
以下是设置:带有混合数据的Excel列 - 99%的数字(有些以0开头)1%的文字。
PROGRAMATICALLY进入SQL Server 2005表/列类型 - varchar(255)。
导入在本地工作正常,但是一旦我将代码移动到生产(GoDaddy),它就会删除列中的前导0。
有什么想法吗?
P.S。我知道注册表更改解决方案,事实上 - 在我的开发框中将值设置为0,但答案让我意识到在PRODUCTION SERVER上没有设置该值:)
答案 0 :(得分:2)
是。 Excel驱动程序仅对前8行进行采样以确定数据类型。 这意味着它假定列是数字的,“bob”不会出现在第1到8行中。
目标表列数据类型无关紧要。
long time出现了问题,我是在2003年第一次看到的。
答案 1 :(得分:2)
ISAM驱动程序仅对前8行进行采样,但您可以通过注册表更改来更改该行为:
http://sqlserversd.wordpress.com/2008/09/14/ssis-excel-values-import-as-nulls/
但是,使用Excel进行机器对机器数据传输是一场噩梦......难道没有其他方法可以发送数据吗?
答案 2 :(得分:0)
我们通常将文件保存为.csv文件或.txt文件,然后不会出现问题。
答案 3 :(得分:0)
这有一个快速而棘手的方法。按照这些步骤进行操作但首先将实际Excel工作表中的所有数据/列和行复制到另一个excel表中,以便安全起见,以便与实际数据进行比较。
步骤:
如果您有多个列的值为0,则只需重复相同的操作。 现在您的excel文档已准备好使用零值导入:)。
快乐的日子。