SQL数据库与文本文件之间的大批量数据互导
时间:2011-05-21 来源:Yaoquan.Luo
--delete from d_t11
select * from Role
BULK INSERT Role
FROM 'D:\AAA\Users\AAA\DbExport\111est.txt'
WITH
(
FIELDTERMINATOR = '|',
ROWTERMINATOR = '|\n'
)
select * from Role
點擊上面成功
**********************************************
数据库:
sql2000
服务器名: SqlServerName
数据库名: DataBaseName
表 名: d_t11
用 户 名: sa
密 码: sa
运行环境: sql2000查询分析器
数据文件:
以下示例为文本文件
如果你要导入或导出到*.doc,*.dat类型的数据文件中,只需将文件名更改即可.
文件路径及文件名: c:\mrfu.txt
**********************************************
**********************************************
1.sql中数据与文本文件互导
**********************************************
相邻字段之间用空格隔开
EXEC master..xp_cmdshell ' bcp "DataBaseName..d_t11" out "c:\mrfu.txt" -c -S"SqlServerName" -U"sa" -P"sa" ' 或
EXEC master..xp_cmdshell 'bcp "Select * from DataBaseName..d_t11" queryout "c:\mrfu.txt" -c -S"SqlServerName" -U"sa" -P"sa" '
相邻字段之间用逗号或其它符号隔开(在-c后添加-t 并在-t后添加你要使用的分隔符)
Exec master..xp_cmdshell ' bcp "DataBaseName..d_t11" out "c:\mrfu.txt" -c -t, -S"SqlServerName" -U"sa" -P"sa" ' 或
EXEC master..xp_cmdshell 'bcp "Select * from DataBaseName..d_t11" queryout "c:\mrfu.txt" -c -t,, -S"SqlServerName" -U"sa" -P"sa" '
大容量复制选项 bcp 实用工具开关 BULK INSERT 子句
字符模式格式 -c DATAFILETYPE = 'char'
字段终止符 -t FIELDTERMINATOR
行终止符 -r ROWTERMINATOR
--本例从指定的sql数据库中导入员工详细信息,该文件使用竖杠 (|) 字符作为字段终止符,使用 |\n 作为行终止符。
EXEC master..xp_cmdshell 'bcp "Select * from DataBaseName..d_t11" queryout "c:\mrfu.txt" -c -t"|" -r"|\n" -S"SqlServerName" -U"sa" -P"sa" '
--将数据从数据文件(c:\mrfu.txt)复制到 SQL Server中
--delete from d_t11
select * from d_t11
BULK INSERT DataBaseName..d_t11
FROM 'c:\mrfu.txt'
WITH
(
FIELDTERMINATOR = '|',
ROWTERMINATOR = '|\n'
)
select * from d_t11 或
EXEC master..xp_cmdshell 'bcp " DataBaseName..d_t11" in "c:\mrfu.txt" -c -t"|" -r"|\n" -S"SqlServerName" -U"sa" -P"sa" '
**********************************************
相关说明:
1.xp_cmdshell
以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行方式返回任何输出。授予非管理用户执行 xp_cmdshell 的权限。
2.bcp
实用工具在SQL2000数据库和数据文件之间以用户指定的格式复制数据。
语法
bcp {[[database_name.][owner].]{table_name | view_name} | "query"}
{in | out | queryout | format} data_file
[-m max_errors] [-f format_file] [-e err_file]
[-F first_row] [-L last_row] [-b batch_size]
[-n] [-c] [-w] [-N] [-V (60 | 65 | 70)] [-6]
[-q] [-C code_page] [-t field_term] [-r row_term]
[-i input_file] [-o output_file] [-a packet_size]
[-S server_name[\instance_name]] [-U login_id] [-P password]
[-T] [-v] [-R] [-k] [-E] [-h "hint [,...n]"]
**********************************************