2012-02-27 40 views
1

我使用以下命令从文本文件导入数据,但是,我需要找到一种在文本文件中选择特定列的方法。以下链接已建议我不过我努力理解我是否需要MSDN上的例子,以取代目前的SQL:只导入特定数据列 - 逗号分隔列表

BULK INSERT T2 FROM 'c:\Temp\Data.txt' WITH (FIELDTERMINATOR = ',') 

http://msdn.microsoft.com/en-us/library/ms179250.aspx
http://msdn.microsoft.com/en-us/library/ms187908.aspx

我已经举行了下列领域在由逗号分隔的文本文件中。数据也用逗号分隔,使我可以使用上面的代码将其全部导入。

日期,时间,订单,项目,输出槽,交货时间

有没有办法只能进口日期,时间,项目和交货时间到SQL数据库表?

+0

我确信有很多方法可以做到这一点,比我更多的知识渊博的人可以帮助更多,但你可以用许多不同的语言编写脚本来完成这项任务。你完成这项任务的目标是什么语言/技术? MySQL的? MSSQL?一个bash语言? – 2012-02-27 17:56:07

+0

@ Will Buck Im使用构建它的C#和SQL在ASP.Net中创建项目。所有数据目前都来自文本文件。我喜欢使用批处理文件,但我知道他们是最好的东西。所以,我认为这可能会使用SQL。 – Blob 2012-02-27 18:03:52

+1

为什么不只是批量插入临时T3然后从T3中选择你想要的列到T2?操作数据一旦你把它放在表格中,IMO会更容易;当你完成时,扔掉临时表。是的,它的一些开销,但远远快于必须放弃列。或者让系统生成CSV不会将输出插槽放在输出中,或者在Excel中打开输出删除该列并重新保存为CSV ...这里有很多选项。 – xQbert 2012-02-27 18:05:31

回答

1

使用Format File作为您的BULK INSERT。您可以指定通过此文件定义导入哪些字段。

编辑:来自MSDN的示例。

BULK INSERT bulktest..t_float 
FROM 'C:\t_float-c.dat' WITH (FORMATFILE='C:\t_floatformat-c-xml.xml'); 
GO 
+0

那是什么链接告诉我做什么,但我把它放在SQL语句中? – Blob 2012-02-27 19:45:10

+0

@ user1091114看我的编辑。 – 2012-02-27 19:48:55