当SQL Server 2008查询结果导出到CSV文件时,会添加额外的行

时间:2012-02-13 18:23:26

标签: sql-server-2008 csv export

当我将查询结果从SQL Server 2008导出为CSV或Tab Delimited txt格式时,当我在Excel中打开导出的文件或将其导入Access时,我总是会看到额外的记录(非空白)。

SQL查询结果返回116623行

但是当我导出到csv并使用excel打开时,我会看到116640条记录。我尝试将csv文件导入访问,我也看到了额外的记录。

奇怪的是,如果我将excel中的总数加起来到行116623,我有正确的总数,这意味着我有正确的数据到那一点,但之后的额外17个记录是坏数据,我不知道它是如何添加的。

是否有人知道可能导致这些额外记录/行出现在我的CSV文件末尾的原因?

我导出的方式是右键单击结果并导出到csv(逗号分隔)或txt(制表符分隔)文件,这两种文件都会导致问题。

2 个答案:

答案 0 :(得分:3)

我敢打赌,在那些大量的行中,你有一些数据在记录内部有一个回车符(例如包含换行符的地址记录)。查找在您希望数据输入的列中有空数据的行。我通常会将文件重新导入工作表(带有标识,以便您可以识别哪些行靠近坏的行)然后对其运行查询找到那些不好的。

答案 1 :(得分:0)

实际上,导出结果中存在一个错误。导出结果后,在十六进制编辑器中打开csv文件,然后查找最后一条记录的唯一键。你会发现它在文件的末尾。找到该记录的OD OA并删除后面的所有其他内容。它不是Excel或Access。出于某种原因,SQL无法在不破坏文件末尾的情况下导出csv。