使用bcp将csv文件导入到sql 2005或2008
我有一个 csv 文件,我需要将其导入到 sql 2005 或 2008 中的表中。csv 中的列名称和计数与表列名称和计数不同。 csv 由“;”分隔 。
示例
CSV 文件内容:
FirstName;LastName;Country;Age
Roger;Mouthout;Belgium;55
SQL 人员表
Columns: FName,LName,Country
I have a csv file and i need to import it to a table in sql 2005 or 2008. The column names and count in the csv are different from the table column names and count. The csv is splitted by a ';' .
Example
CSV FILEcontents:
FirstName;LastName;Country;Age
Roger;Mouthout;Belgium;55
SQL Person Table
Columns: FName,LName,Country
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用 bcp 导入时可以使用格式文件:
为表创建格式文件:
编辑导入文件。 诀窍是为要跳过的字段添加一个虚拟行,并添加一个“0”
作为服务器列顺序。
然后使用此格式文件导入数据,指定您的输入文件、此格式文件和分隔符:
You can use a format file when importing with bcp:
Create a format file for your table:
Edit the import file. The trick is to add a dummy row for the field you want to skip, and add a '0'
as server column order.
Then import the data using this format file, specifying your inputfile, this format file and the seperator:
我将创建一个临时表,批量插入批次,在新表中选择您需要的内容并删除临时表。
就像是
I'd create a temporary table, bulk insert the lot, select into the new table what you need and drop the temporary table.
Something like
我现在更喜欢将 XML 格式文件与 BULK INSERT 或 OPENROWSET 一起使用:
然后您可以使用服务器端 BULK INSERT 命令,如下所示:
或者,如果您想“动态”修改数据,您可以使用
I now prefer to use XML format files like this with BULK INSERT or OPENROWSET:
Then you can use the server-side BULK INSERT command as follows:
alternatively, if you want to modify the data 'in-flight', you can use the
有关信息,具有相同的结构,您可以使用此类语句:
请参阅 示例
For info, with the same structure, you can use this kind of statement:
See example