SQL2008中使用BCP导出XML文件方法
2016-09-26 15:51
232 查看
在网上看了好几篇文章,经过自己的验证,在BCP导出数据时的SQL语句中,需要注意不要用回车键换行,否则会报错。
1.用信任连接
EXEC xp_cmdshell 'bcp "select 列1,列2,列3 from 数据库名.dbo.表名 for xml path(''xml行'') ,root(''Root'')" queryout E:/123.xml -c -t -T '
2.用用户密码连接
exec xp_cmdshell 'bcp "select 列1,列2,列3 from 数据库名.dbo.表名 for xml path(''Item'')" queryout "c:\1.xml" -c -U "sa" -P "password"'
若运行正常,会出现类似以下提示:
NULL
开始复制...
NULL
已复制 1 行。
网络数据包大小(字节): 4096
总时钟时间(毫秒) : 1 平均值: (每秒 1000.00 行。)
NULL
-------------------------------------------------------------
补充说明:
1.以上语句在SQL2008(R2)测试运行,正常
2.执行xp_cmdshell 后面的所有内容,用一对英文输入法下的单引号;select 查询语句、用户名、密码、输出文件名, 用英文双引号;而在双引号中的字符,用二个单引号,如path(''Item'')即为二个单引号。
3.上面是用SQL语句查询,故参数为queryout,若为表,则需要把参数改为out.
1.用信任连接
EXEC xp_cmdshell 'bcp "select 列1,列2,列3 from 数据库名.dbo.表名 for xml path(''xml行'') ,root(''Root'')" queryout E:/123.xml -c -t -T '
2.用用户密码连接
exec xp_cmdshell 'bcp "select 列1,列2,列3 from 数据库名.dbo.表名 for xml path(''Item'')" queryout "c:\1.xml" -c -U "sa" -P "password"'
若运行正常,会出现类似以下提示:
NULL
开始复制...
NULL
已复制 1 行。
网络数据包大小(字节): 4096
总时钟时间(毫秒) : 1 平均值: (每秒 1000.00 行。)
NULL
-------------------------------------------------------------
补充说明:
1.以上语句在SQL2008(R2)测试运行,正常
2.执行xp_cmdshell 后面的所有内容,用一对英文输入法下的单引号;select 查询语句、用户名、密码、输出文件名, 用英文双引号;而在双引号中的字符,用二个单引号,如path(''Item'')即为二个单引号。
3.上面是用SQL语句查询,故参数为queryout,若为表,则需要把参数改为out.
相关文章推荐
- 如何重装TCP/IP协议
- SQL中的三值逻辑
- SQL Server 作业批量停止
- 结束SQL阻塞的进程
- 动态生成SQL Server视图作业
- Windows 8 官方高清壁纸欣赏与下载
- SQL Server 语句操纵数据库
- 谁是桌面王者?Win PK Linux三大镇山之宝
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- Windows Clang开发环境备忘
- SQL(结构化查询语句)
- 从Windows系统下访问Linux分区相关软件
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- Windows下搭建本地SVN服务器
- 使用Windows原生命令一键清空剪贴板
- oracle sql日期比较