业务场景
需要从生产服务器上导出几个表的最新数据到本地
解决方式
首先考虑的是用SSIS来实现,结果因为表中有字段存放的是html文档而导致此方法失败,于是考虑用XML来实现
实现步骤
1. 从生产服务器将表的数据导出成xml格式的文本
--生成xml语句
select *
from [表名] Data
for xml auto,root ('Root')
2. 将结果集另存为文本文件
3. 下载此文本文件到本地服务器
4. 导入
declare @t table(data xml);
insert into @t(data)
SELECT *
FROM OPENROWSET(BULK '文件名',SINGLE_BLOB) T;
DECLARE @Handle int
,@Xml xml;
select top 1 @Xml=Data
from @t;
EXEC sp_xml_preparedocument @Handle OUTPUT,@Xml;
INSERT INTO [表名]
SELECT * FROM OPENXML (@Handle, N'/Root/Data')
with [表名];
exec sp_xml_removedocument @Handle
--此处自动会自动过滤掉自增长列
在实际应用中需要做些小修改即可