txt文件导入到 SQL SERVER (指定列)
2015-10-13 15:58
288 查看
第一种方法:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------G:\format.xml
<?xml version="1.0"?> <BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <RECORD> <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="20" COLLATION="Chinese_PRC_CI_AS"/> <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="Chinese_PRC_CI_AS"/> <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="20" COLLATION="Chinese_PRC_CI_AS"/> </RECORD> <ROW> <COLUMN SOURCE="1" NAME="userName" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="2" NAME="address" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="3" NAME="phone" xsi:type="SQLVARYCHAR"/> </ROW> </BCPFORMAT>
G:\test.txt userName,address,phone hua,湖南,5971898 --SQL SERVER --创建表 CREATE TABLE userinfo(id INT identity,userName varchar(20), pass varchar(20),address varchar(100),phone varchar(20), email varchar(128),registerTime datetime) --导入 INSERT INTO userinfo(userName,address,phone) SELECT * FROM OPENROWSET(BULK 'G:\test.txt',FORMATFILE='G:\format.xml',FIRSTROW=2) AS T; --查看数据 SELECT * FROM userinfo; /* id userName pass address phone email registerTime ----------- --------- ---------- ----------- ---------- ---------- ------------- 1 hua NULL 湖南 5971898 NULL NULL (1 行受影响) */
------------------------------------------------
备注:
SQL 2000中不可以用xml格式化文件. 只能用非xml格式化文件. 非xml格式化文件比xml格式化文件的可读性差很多
------------------------------------------------------------------
第二种方法: -----------------------------------------------------------------------------------------------------G:\format.fmt 8.0 3 1 SQLCHAR 0 20 "," 2 userName Chinese_PRC_CI_AS 2 SQLCHAR 0 100 "," 4 address Chinese_PRC_CI_AS 3 SQLCHAR 0 20 "\r\n" 5 phone ""
G:\test.txt userName,address,phone hua,湖南,5971898 --SQL SERVER --建表 CREATE TABLE userinfo(id int identity,userName varchar(20), pass varchar(20),address varchar(100),phone varchar(20), email varchar(128),registerTime datetime) --导入 BULK INSERT userinfo FROM 'G:\test.txt' WITH ( FORMATFILE = 'G:\format.fmt', FIRSTROW = 2 ) --查看数据 SELECT * FROM userinfo; /* id userName pass address phone email registerTime ----------- --------- ---------- ----------- ---------- ---------- ------------- 1 hua NULL 湖南 5971898 NULL NULL (1 行受影响) */--------------------------------------
8.0 --这个8,表示版本是8.0 3 --这个3.表示数据文件中有几列. 第一列的1,2,3表示数据文件的列的序号 而后面的第六列的2,4,5表示userName,Address,phone在表中.是第几列 1 SQLCHAR 0 20 "," 2 userName Chinese_PRC_CI_AS 2 SQLCHAR 0 100 "," 4 address Chinese_PRC_CI_AS 3 SQLCHAR 0 20 "\r\n" 5 phone ""
原文详见:
http://bbs.csdn.net/topics/320027629
参考资料:
https://technet.microsoft.com/zh-cn/library/ms188365(SQL.90).aspx
https://technet.microsoft.com/zh-cn/library/ms191485(SQL.90).aspx
https://msdn.microsoft.com/zh-cn/library/ms178129.aspx
相关文章推荐
- Redis在win7上的可视化应用
- xtradbbackup实现自动化增量备份数据库
- 使用一体化监控系统监控云操作系统虚拟机中的MySQL数据库服务
- 在windows上部署使用Redis
- Oracle 中用一个表的数据更新另一个表的数据
- MySQL group_concat_max_len
- Mysql 配置文件my.cnf详解
- SQL 2008升级SQL 2008 R2完全教程或者10.00.1600升级10.50.1600
- MySQL Server 5.0–安装及配置/MySQLInstanceConfig.exe用法详解
- 【未完】Gearman分布式处理,mysql队列详解
- mysql常见错误/usr/local/mysql/bin/mysqld: [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
- spring boot 框架下的redis缓存问题
- 数据库索引
- Redis 集群方案
- ClouderaManager安装hive后执行sql时写hdfs无权限
- oracle怎样创建表空间和用户
- ORACLE 12C 修改spfile路径
- MySql:操作表的语句以及常用的字段类型
- Spark SQL 1.3.0 DataFrame介绍、使用及提供了些完整的数据写入
- Oracle EBS API使用说明-DZY