在SQL2005里直接读取XML并解析其内容

本文介绍SQL Server 2005中XML数据类型的使用方法,包括如何通过XQuery查询XML数据、声明命名空间及获取节点和属性值。此外,还介绍了如何设置XML Schema Collection进行XSD验证。
SQL2005里一项令人心动的内容就是支持XML类型了,而且今天刚刚知道,原来本身还支持在SQL2005的语句里解析XML.
不多说,直接贴例子代码:

访问一个结点:
SELECT     TOP (10) 
                      dataxml.query('declare namespace AWMI=" http://webservices.test.com/ABCDCommerceService/2005-10-05"
; data(/AWMI:ItemLookupResponse/AWMI:OperationRequest/AWMI:RequestId)')
                       AS Expr1
FROM         asin 

访问一个结点的属性:
SELECT     TOP (10) 
                      dataxml.query('declare namespace AWMI=" http://webservices.test.com/ABCDCommerceService/2005-10-05"
; data(/AWMI:ItemLookupResponse/AWMI:OperationRequest/AWMI:RequestId/@approved)')
                       AS Expr1
FROM         asin 


dataxml是我表中的字段名称,也就是类型为XML的字段.
先声明了一个命名空间,然后直接按照结点访问,就这么简单.至于属性就加个@就可以了

我们还可以给这个XML设置验证格式,当然,可以用XSD验证.
在写下面的语句:

CREATE XML SCHEMA COLLECTION [dbo].[requestSchemaCollection]
AS N' 这里是XSD的内容'

注意编码在SQL里默认是UTF16的,你可以把编码那句删除.
创建成功以后就可以在programmablitity---types---XML schema collections里看到你创建的验证格式了.去修改你的表,把格式添加进table的XML列里.

在你用Visual Studio调用在SQL语句里直接解析XML的过程时,还可能出现类似错误:
UPDATE failed because the following SET options have incorrect settings: 'ARITHABORT'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or query notifications and/or xml data type methods.
如果有这个错误,你需要在语句里添加 Set ARITHABORT ON来解决此问题.这些是最近在操作SQL2005时遇到的.如果你也在用,试试看吧
看看这个,也很有用
http://www.microsoft.com/china/msdn/library/data/sqlserver/XMLSupportinMicrosoftSQLServer2005.mspx

转载于:https://www.cnblogs.com/zhuhee/archive/2006/01/03/310234.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值