【发布时间】:2016-11-16 12:43:29
【问题描述】:
我有一个 6.00 GB 的 .txt 文件。它是一个制表符分隔的文件,所以当我尝试将它加载到 SQL Server 中时,列分隔符是制表符。
我需要将 .txt 文件加载到数据库中,但我不需要 6.00 Gb 文件中的所有行。我需要能够使用像
select *
into <my table>
where column5 in ('ab, 'cd')
但这是一个文本文件,在这种情况下无法将其加载到数据库中。
谁能帮我解决这个问题?
【问题讨论】:
-
不,您不能在 SQL Server 中本地执行此操作
-
您是从平面文件中导入大部分行还是只导入少数几行?您正在寻找的条件是否可以很容易地完成,例如
grep?如果是这样,您可以在导入数据之前对其进行过滤。否则,您可能必须导入整个文件,然后运行 DELETE FROM...WHERE语句。 -
谢谢 BOB,我将导入大约 20% 的文件,问题是当我对平面文件进行预览时,默认列名(第 11 列)是我需要的把条件放在。该 colmn 有大约 65 个不同的名称,我需要按 2 个名称进行过滤。我可以尝试使用 Visual Studio 或任何其他工具吗?
-
我从来没有使用过这个特殊的工具,但是在
windows tool text search上的快速谷歌搜索产生了 WinGREP 这可能是一个快速的解决方案。 -
嘿,我想我找到了一种方法,在 windows 中有一个类似 grep 的命令,称为 findstr,当我为 txt 文件提供该命令时,它会显示我需要该名称的所有行,所有我需要将输出存储在单独的文本文件中。有什么想法吗?
标签: sql-server import sql-server-2012 where-clause flat-file