通过SSMS将平面文件导入SQL Server失败

时间:2018-05-16 11:28:22

标签: import ssms

使用SSMS导入平面文件选项将看似有效的平面文件(csv,文本等)导入SQL Server数据库时,会出现以下错误:

  

Microsoft SQL Server Management Studio

     

将数据插入表时出错。 (Microsoft.SqlServer.Import.Wizard)

     

将数据插入表时出错。 (Microsoft.SqlServer.Prose.Import)

     

对象引用未设置为对象的实例。 (Microsoft.SqlServer.Prose.Import)

目标表可能包含导入得很好的行。未导入的第一行似乎没有格式错误。

出了什么问题?

4 个答案:

答案 0 :(得分:8)

问题似乎是文件末尾有多个空行。看起来导入过程以块的形式加载行,并且它是最后一个总是失败的块。删除空行(保留最后一行的行终止符)可以解决问题。

这会花费我几个小时的头发拉动处理大文件。希望这能节省一些时间。

答案 1 :(得分:6)

如果您要导入的文件已经打开,SSMS将抛出此错误。关闭文件,然后重试。

答案 2 :(得分:1)

请确保在创建平面文件 IF 时,您在任何列中都有文本(varchar)值,请勿将文件选择为逗号 “,” 定界。而是选择垂直线“ |” 或您确定确定的内容,但这些值不能在这些值中。在nvarchar字段中,逗号很常见。

我遇到了这个问题,其他答案中的任何建议都没有帮助我! 我希望这可以节省一些时间,并且花了我几个小时才弄清楚!!!

答案 3 :(得分:0)

其他这些都不适合我,但是这样做了:

当您导入平面文件时,SSMS 会为您提供每列中数据类型的简要摘要。每当您看到 int 或 double 列中的 nvarchar 时,请将其更改为 int 或 double。并将所有 nvarchars 更改为 nvarchar(max)。这对我有用。