参考:
bcp {dbtable | query} {in | out | queryout | format} 数据文件
[-m 最大错误数] [-f 格式化文件] [-e 错误文件] [-F 首行] [-L 末行] [-b 批大小] [-n 本机类型] [-c 字符类型] [-w 宽字符类型] [-N 将非文本保持为本机类型] [-V 文件格式版本] [-q 带引号的标识符] [-C 代码页说明符] [-t 字段终止符] [-r 行终止符] [-i 输入文件] [-o 输出文件] [-a 数据包大小] [-S 服务器名称] [-U 用户名] [-P 密码] [-T 可信连接] [-v 版本] [-R 允许使用区域设置] [-k 保留空值] [-E 保留标识值] [-h"加载提示"] [-x 生成xml 格式化文件]
开启CMDSHELL
GO SP_CONFIGURE 'show advanced options',1 GO RECONFIGURE GO sp_configure 'xp_cmdshell',1 GO RECONFIGURE GO
关闭CMDSHELL
GO sp_configure 'xp_cmdshell',0 O RECONFIGURE GO
--整表导出 EXEC master..XP_cmdshell 'bcp [master].[sys].[databases] out c:\1.txt -c -T'
--使用查询导出 --如果使用查询,导出使用queryout,查询使用双引号包括起来。 EXEC master..XP_cmdshell 'bcp "select top 3 * from master.sys.databases" queryout c:\2.txt -c -T'
--使用BCP IN导入数据 EXEC master..XP_cmdshell 'bcp master.dbo.TB2 in c:\2.txt -c -T'
--使用BULK INSERT导入数据 BULK INSERT master.dbo.TB2 FROM 'c:\2.txt'
--使用XML格式导出 --先导出格式化文件,再导出数据文件 --使用,分隔符 EXEC master..XP_cmdshell 'bcp [master].[sys].[databases] format nul -c -t"," -x -f "c:\dbFormat.xml" -T' EXEC master..XP_cmdshell 'bcp [master].[sys].[databases] out "c:\dbData.txt" -c -t"," -T'
--使用BCP IN+XML格式化文件导入数据 EXEC master..xp_cmdshell 'bcp master.dbo.TB2 in "c:\dbData.txt" -f "c:\dbFormat.xml" -T'
--使用BULK INSERT+XML格式化文件导入数据 BULK INSERT master.dbo.TB2 FROM 'c:\dbData.txt' WITH (FORMATFILE = 'c:\dbFormat.xml');
--使用OPENROWSET+XML格式化导入数据 INSERT INTO master.dbo.TB2 SELECT * FROM OPENROWSET(BULK 'c:\dbData.txt', FORMATFILE='c:\dbFormat.xml' ) AS T ;