夜鹰教程网-程序员的加油站
 当前位置:文章中心 >> sql2016_sql2012_sql2015_sql2008
SQL Server数据库中XML支持及查询返回XML
夜鹰教程网 来源:www.yyjcw.com 日期:2016-12-5 21:21:30
使 SQL Server 查询结果转化成 XML 字符串 
使 SQL Server 查询结果转化成 XML 字符串

  1 在 SQL 语句后使用 for xml 子句。


  [ FOR { XML { RAW | AUTO }
  [ , XMLDATA ]
  [ , ELEMENTS ]
  [ , BINARY BASE64 ] } ]


  将得到一个无根节点的XML片断。

  1.1 for xml raw

  结果为 ...

  1.2 for xml auto

  结果为 <表名 列名="value" 列名="value" ... /><表名 ... />...

  1.3 for xml raw,xmldata

  结果为

  1.3.1 for xml auto,xmldata

  内为

  1.4 elements使列作为子元素返回,binary base64采用base64编码表示二进制数据。

  使用 HTTP 访问 SQL Server 并返回XML数据

  1 安装 IIS5.1 和 SQL Server 2000 以上版本。

  2 使用SQL Server 的 '在 IIS 中配置SQL XML 支持' 工具创建一个虚拟目录。

  2.1 在 '常规' 选项卡 输入 虚拟目录 名称,例如 Test。

  2.2 在 '安全性' 输入账号密码等等身份验证信息。

  2.3 '数据源' 可以选择要连接的数据库。

  2.4 '设置'选项卡里面有些细则,默认只有一个允许模板。

  2.4.1 如果想用url?sql=sqlString 或者 url?sql=sqlString,则选择好 '允许sql=或...的URL查询'。
  2.4.2 XPATH允许在URL后使用xpath表达式过滤得到的数据,POST允许通过表达提交查询。

  2.5 在URL中指定数据库和表的名称。

  2.5.1 在'虚拟名称'中创建相应的虚拟名称,如'http://localhos/database/table/...'。

  3 使用 SQL XML 进行查询。

  3.1 使用 GET 提交,在 URL 后附加 SQL 语句:

  [url]http://localhos/test?sql=select+[/url]*+from+table+for+xml+auto&root=root

  root=root可以指定根节点,否则会得到一个没有根节点的xml片断。

  3.2 使用 XML模板 进行查询。

  3.2.1 直接在 URL 中指定模板。

  [url]http://localhos/test?template=[/url]select+*+from+table+for+xml+auto

  URL 中附加模板存在安全和长度限制,可以使用模板文件。

  3.2.2 使用模板文件,例:

  建立一个文本文件tmp.xml

  select * from table for xml auto

  存放在虚拟目录test内。

  使用URL 'http://localhos/test/tmp.xml' 便可以得到结果。

  3.2.2.1 使用XPATH

  [url]http://localhos/test/tmp.xml/col[/url][@att="1"]

  '...tmp.xml/'后即可以接xpath表达式进行筛选,语法和普通xml中一样。
复制链接 网友评论 收藏本文 关闭此页
上一条: 写一个HTML代码或C++代码分析器是…  下一条: 两表连接的SQL语句
夜鹰教程网成立于2008年,目前已经运营了将近 13 年,发布了大量关于 html5/css3/C#/asp.net/java/python/nodejs/mongodb/sql server/android/javascript/mysql/mvc/easyui/vue/echarts原创教程。 我们一直都在坚持的是:认证负责、一丝不苟、以工匠的精神来打磨每一套教程,让读者感受到作者的用心。我们默默投入的时间,确保每一套教程都是一件作品,而不是呆板的文字和视频! 目前我们推出在线辅导班试运营,模式为一对一辅导,教学工具为QQ。我们的辅导学科包括 java 、android原生开发、webapp开发、商城开发、C#和asp.net开发,winform和物联网开发、web前端开发,但不仅限于此。 普通班针对的是国内学员,例如想打好基础的大学生、想转行的有志青年、想深入学习的程序员、想开发软件的初学者或者业余爱好者等。 就业办针对即将毕业上岗的大四学生,或者打算转行的初级开发工程师。 留学生班针对的是在欧美、加拿大、澳洲、日本、韩国、新加坡等地留学的中国学子,目的是让大家熟练地掌握编程技能,按时完成老师布置的作业,并能顺利地通过考试。 详细咨询QQ:1416759661   夜鹰教程网  基于角色的权限管理系统(c-s/b-s)。
  夜鹰教程网  基于nodejs的聊天室开发视频教程
  夜鹰教程网  Git分布式版本管理视频教程
  夜鹰教程网  MVC+EasyUI视频教程
  夜鹰教程网  在线考试系统视频教程
  夜鹰教程网  MongoDB视频教程。
  夜鹰教程网 Canvas视频教程
  夜鹰教程网 报表开发视频教程
  热点推荐
牛人是怎样处理海量数据的
MYSQL与MSSQL UPDATE两表更新语法…
SQL SERVER常用日期函数的详解
随机查询ORDER BY NEWID()
批量插入数据 延时 SQL
用sql转换汉字为拼音
定时同步服务器上的数据
SQL Server 2008与SQL Server 200…
在XP下安装SQL Server2000 清除安…
SQL触发器实例
Mssql触发器学习例子之UPDATE触发…
两表连接的SQL语句
写一个HTML代码或C++代码分析器是…
分页存储过程!
普通行列转换 SQL(1)
  最近更新
SQL命令:增加字段、修改字段、修…
sql 中的 indexOf 与 lastIndexOf…
SQL中使用正则表达式提取或者过滤…
什么是BI?
Mongodb是一种比较常见的NOSQL数据…
SQL2008 提示评估期已过的解决方法…
存在属性(Directory, Compressed)…
属性不匹配directory,archive
sql2012安装图解教程
一条sql语句批量插入多条记录
sql2016下载
sql server2008 r2 密钥
sql2016安装密钥
sql2016安装图解教程
sql server 2012提示评估期已过的…

关于我们 | 网站建设 | 技术辅导 | 常见问题 | 联系我们 | 友情链接

夜鹰教程网 版权所有 www.yyjcw.com All rights reserved 备案号:蜀ICP备08011740号3