2012-01-13 70 views
1

我们正在寻找一种方法,通过我们的应用程序GUI(不是SSMS)自动保存MS SQL 2008 R2中的所有数据。我们希望使用'for XML Auto'将表中的所有数据导出到单个XML,其中表名以'Params'开头。将数据从MS SQL Server 2008 R2转储到单个XML文件

EXEC sp_MSforeachtable 
@command1 = N'CAST(select * from ? for xml auto)', 
@whereand = N'and o.name like ''Params%''') AS XML) 

作选择很好,但问题是,所有表数据将导致一个单独的XML流,但是,我想创建一个XML。

我将如何去结合结果集合成一个?我应该复制并修改sp_MSforeachtable还是有办法使用标准SP?我想尽可能快地做出选择,所以我想避免将XML选择到临时表中,然后将它们连接成单个XML流。

+0

因为应用程序设置将通过GUI保存到XML中,所以如果需要它可以复制到另一个系统,主要是在开发,测试和生产环境之间复制。这是系统操作员必须做的事情,不是,由于安全原因,他们不能也不会直接访问数据库。 – Daniel 2012-01-16 10:22:34

回答

2

看看这个博客文章:Selecting the entire Database as XML String。我希望它能回答你的问题。

+0

我不确定你在哪里看到正在使用的临时表。我的解决方案动态构建一个选择然后执行。没有涉及临时表。第一个代码片段只是创建一些包含数据的表来测试过程。第二个片段是您的问题的实际解决方案。 – 2012-01-23 19:58:05

+0

你说得对,我删除了我的评论。谢谢您的帮助。 – Daniel 2012-02-01 08:59:37

相关问题