[导入psv文件时SQL导入向导错误

问题描述 投票:0回答:2

我正在尝试将psv(以竖线分隔的csv)导入Microsoft SQL Server 2008R2 Express数据库表。

psv中只有两个字段,每个字段有1000个以上的字符。

在导入向导中,我具有以下设置:

enter image description here

enter image description here

enter image description here

在映射中仔细检查:

enter image description here

注意,我设置了在失败/截断时忽略的选项:enter image description here

照常,我收到一个错误:

错误0xc02020a1:数据流任务1:数据转换失败。数据列“ Comm”的转换返回状态值4和状态文本“文本被截断,或者一个或多个字符与目标代码页。”(SQL Server导入和导出向导)

enter image description here

UPDATE:

因此,按照@Marc的建议,尽管非常非常不情愿,我还是花了3个小时左右的时间终于在计算机上安装了SQL2014,并希望导入psv。如预期的那样,错误再次出现:

enter image description here

我真的不明白为什么像微软这样的公司没有对其产品进行全面的QAT?!

sql-server-2014
2个回答
0
投票

    将CSV / PSV导入到Access数据库。注意,必须保存为mdb类型(是的,来自20世纪的类型),您可能想在这里阅读我的故事:how to import psv data into Microsoft Access
  1. 在您的SQL中(我的数据库为2014),启动导入向导,然后选择数据源类型(ACCESS)和文件。

  2. 为什么必须使用mdb类型的访问数据库?在这里,您将看到SQL 2014中没有用于访问数据库的accdb类型的选项。

enter image description here

[不要忘记选择正确的目标(是的,即使您通过右键单击目标数据库并选择导入来启动向导),也要选择最后一个选项:SQL Native Client 11.0。这将显示SQL2014和数据库。

    enter image description here
  1. 现在可以按预期完成导入。

    感谢此SQL中的出色设计逻辑(2014年?不,与2008年相比基本没有变化),真是谦虚的期望和要求!!!我要花4-5个小时才能完成。


0
投票
if (object_id('dbo.usecase1') is not null) drop table dbo.usecase1 go create table dbo.usecase1 ( Descr nvarchar(2000) null, Comm nvarchar(2000) null ) go bulk insert dbo.usecase1 from 'C:\tmp\usecase0.psv' with ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' )

go

BULK INSERT (Transact-SQL)
© www.soinside.com 2019 - 2024. All rights reserved.