使用文本列> 8000个字符将CSV导入SQL Server

Mic*_*son 7 sql-server import ssms truncation sqldatatypes

我正在尝试使用SQL Server管理工作室2012导入/导出向导将带有两列(sku,description)的csv文件导入SQL Server 2008.因为描述列肯定有大于8000个字符的行,所以在选择csv数据源时我会转到高级选项卡,然后单击描述列并单击"建议类型".然后它为OutPutColumnWidth属性输入16718.显然,那里有一个描述很长.

它生成的sql是:

CREATE TABLE [dbo].[mag-prod-descriptions1] (
[sku] varchar(7),
[descrip] varchar(16718)
)
Run Code Online (Sandbox Code Playgroud)

但是,当我执行导入时,我收到错误"无法连接源组件.错误0xc0204016:SSIS.Pipeline:"源 - mag-prod-descriptions1_csv.Outputs [平面文件源输出] .Columns [Column 1]"长度无效.长度必须介于0到8000之间."

如果我将OutputColumnWidth属性更改为8000,那么我会收到一条错误,指出该列已被截断.我不能赢.

如何让我导入超过8000个字符的单元格?

Mic*_*son 10

确认.终于明白了.答案是对源文件中的大列使用Text Stream数据类型.


小智 0

我看到列大小错误的导入问题,我在想...这可能是 Unicode 问题吗?创建表时尝试使用 nvarchar 而不是 varchar。

参考:Unicode 与 SSIS 配合使用效果更好