sql server 生成xml的问题

binbinneu 2011-08-14 10:33:51
一张表有很多属性,如下所示:
id name date lat lng alt
0 ggg 2011 45.12 123.12 1234.023
0 ggg 2011 45.12 123.12 1234.023

属性可以分为两类,pic_properties和pos_properties。

现在想调用sql语句,生成如下所示的xml,请问怎么做?

<?xml version="1.0" encoding="UTF-8" ?>
<pic>
<pic_properties id="0" date="2011" name="ggg" />
<pos_properties lat="45.12" lng="123.12" alt="1234.023" />
</pic>
...全文
80 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-08-14
  • 打赏
  • 举报
回复
/*--存为XML
将表/查询存储为标准的XML文件
--邹建 2003.12(引用请保留此信息)--*/

/*--调用示例
--用SQL用winows身份验证的情况
exec p_savexml @sql='地区资料',@fname='c:\地区资料.xml'

--用指定的用户
exec p_savexml @sql='地区资料',@fname='c:\地区资料.xml',@userid='sa'
--*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_savexml]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_savexml]
GO

create proc p_savexml
@sql varchar(8000), --要保存的表/视图/SQL查询语句
@fname varchar(1000)='c:\tmp.xml', --保存的XML文件名
@userid varchar(50)='', --用户名,如果为nt验证方式,则为''
@password varchar(50)='' --密码
as
declare @err int,@src varchar(255),@desc varchar(255)
declare @obj int,@constr varchar(1000)
if isnull(@userid,'')=''
set @constr='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog='
+db_name()+';Data Source='+@@servername
else
set @constr='Provider=SQLOLEDB.1;Persist Security Info=True;'
+'User ID='+@userid+';Password='+isnull(@password,'')
+';Initial Catalog='+db_name()+';Data Source='+@@servername

exec @err=sp_oacreate 'adodb.recordset',@obj out
if @err<>0 goto lberr

exec @err=sp_oamethod @obj,'open',null,@sql,@constr
if @err<>0 goto lberr

set @sql='del '+@fname
exec master..xp_cmdshell @sql,no_output
exec @err=sp_oamethod @obj,'save',null,@fname,1
if @err<>0 goto lberr

exec @err=sp_oadestroy @obj
return

lberr:
exec sp_oageterrorinfo 0,@src out,@desc out
select cast(@err as varbinary(4)) as 错误号
,@src as 错误源,@desc as 错误描述
go




本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zjcxc/archive/2003/12/31/20086.aspx
本课程根据讲师十多年在世界500强外企的生产环境中的SQL Serer数据库管理和项目实施经验倾心打造。课程系统性强,知识体系完整,覆盖90%以上的企业环境下SQL Server高可用场景,课程中不仅演示详细的操作步骤,更加突出最常见的故障和问题,让学员少走“弯路”,不只是让学员学会“操作”更能让学员“操作”的规范,满满的干货分享,一些课程资料(架构图、部署规划表格等)不仅可以帮助学员掌握技能,也可以作为学员在企业生产环境中实施SQL Server高可用的配置文档、操作手册等。课程的实验环境介绍:1)全部基于微软域环境和企业版SQL Server AOAG - 95%以上的企业环境都是在域环境中,不介绍非域环境和标准版的SQL Server高可用性组,这的配置在企业中较罕见,没有实践意义,不浪费学员时间。2)相应域环境已提前部署和配置好 - 学员导入虚拟机即可开始实验,无需从零开始搭建域环境,所有实验中SQL Server均已加域,直入主题,节省大量时间。3)最新的Windows Server故障转移集群(WS2016、WS2019)和最新版本的SQL ServerSQL2017、SQL2019) -  WS2016-SQL2017与WS2019-SQL2019是目前大多数企业SQL Server高可用的主要平台,基于微软产品生命周期现在一些企业也在讲早期的AOAG向这两个版本迁移,掌握这两种组合不仅让学员学会,更能学有所用。本课程为后续SQL Server进阶课程铺垫,是通向SQL Server DBA 专家的必经之路,讲师每周答疑两次。所有课程资料包括:课程PPT、架构图、部署规划表格、各类脚本学员均可下载。     

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧