将数据库导出到XML文件
用户需求,数据转移与合并。
网上的很多解决方案都是读进内存中再输出,感觉很不爽
本文提供将数据库的表导出到XML文件中的方法,直接用存储过程导出
基本命令:
EXEC xp_cmdshell 'BCP "SELECT * FROM School.dbo.Department FOR XML RAW(''Department''),ELEMENTS XSINIL, ROOT(''Departments'')" QUERYOUT "D:\Backup\Department.xml" -c -S jacky -U sa -P sa'
下边是一个自动导出所有表的存储过程封装
Code
关键点:
1.xp_cmdshell 过程
2.bcp 命令
3.For Xml 选项及参数
上面的相关技术查看联机丛书吧,基本都有示例
4.SP_MSFOREACHTABLE 这个据说是MS一个未发布的存储过程,从6.0开始支持,网上的说明很多,下面只列出它的7个参数
@command1 nvarchar(2000), --第一条运行的T-SQL指令
@replacechar nchar(1) = N?, --指定的占位符号
@command2 nvarchar(2000) = null,--第二条运行的T-SQL指令
@command3 nvarchar(2000) = null, --第三条运行的T-SQL指令
@whereand nvarchar(2000) = null, --可选条件来选择表
@precommand nvarchar(2000) = null, --在表前执行的指令
@postcommand nvarchar(2000) = null --在表后执行的指令