SQL Server在导入时修剪平面文件中的空格

时间:2016-07-21 14:37:45

标签: sql sql-server

我正在使用SQL Server导入/导出向导将几个大型(> 100 GB)平面文件上载到SQL Server。这些文件是分隔的,不是固定宽度的,但在列中仍然有无关的尾随空格:

100,VALUE         ,VALUE           ,VALUE
1002,VALUE         ,VALUE           ,VALUE

我无法控制这些文件的创建方式。不幸的是,在上传后的SQL中维护了空格。我注意到我可以将SET ANSI_PADDING OFF;附加到向导自动生成的SQL查询中,但看起来更改该设置是不明智的。有没有更好的方法来进行这个过程?它甚至值得做吗?

预先清理文件是不可能的,因为我总共需要上传大约10TB的数据,而且代码需要几天甚至几周才能运行。我想运行ALTER COLUMN ... LTRIM(RTRIM([column_name]))也会非常耗费时间。

1 个答案:

答案 0 :(得分:1)

如果您选择保存,向导将创建一个dtsx文件。使用SSDT,您可以打开该包并添加派生或转换组件,以便在导入数据时进行修剪。

如果您不想以这种方式使用SSIS,可以在导入后进行更新(与alter column相反)以修剪列。

如果您选择SSIS路线,这里有一个方便的脚本将修剪所有字段: http://microsoft-ssis.blogspot.com/2010/12/do-something-for-all-columns-in-your.html