首页 新闻 会员 周边 捐助

关于使用opxml()系统函数对结果集处理时with的特殊用法有没有汇总的??

0
[已解决问题] 解决于 2013-09-03 13:24

代码如下:
declare @intDoc int                         --保存加载文档的句柄
declare @xmlContent varchar(max)  --将要加载的xml内容
print(len(@xmlContent))


set @xmlContent='<persons><person name="luisan" sex="man" address="shannxibaoji"></person><person name="luisan" sex="man" address="shannxibaoji"></person><person name="luisan" sex="man" address="shannxibaoji"></person><person name="wanghong" sex="man" address="shannxibaoji"></person><person name="wanghong" sex="man" address="shannxibaoji"></person></persons>'


print(@xmlContent)

exec sp_xml_preparedocument @intDoc output,@xmlContent  --将xml的内容加载到内存中
select * from
openxml(@intDoc,'persons/person')

with([name] varchar(10) '@name',[sex] char(3) '@sex',[address] char(20) '@address')--这块with貌似是将结果集重新整合成一个新表展示??


exec sp_xml_removedocument @intDoc  --将处理过得xml从内存中删除

问题补充:

openxml()方法可不可以打开一个*.xml文件,网上给的例子都是讲xml格式的字符串的读取

RemiHoston的主页 RemiHoston | 初学一级 | 园豆:65
提问于:2013-08-14 17:45
< >
分享
最佳答案
0

with 这个地方 是定义了一个 结果集的结构(SchemaDeclaration),就是这段 XML 在 SQL SERVER 的数据结构和展示存储。
另外:[name] varchar(10) '@name', 这个写法 有问题吧,'@name' 这个不应该出现在 with 中出现的吧?

http://technet.microsoft.com/zh-cn/library/ms186918.aspx

奖励园豆:5
寻自己 | 菜鸟二级 |园豆:285 | 2013-08-15 17:15

这个是书上的例子,可以调试通过的

RemiHoston | 园豆:65 (初学一级) | 2013-08-29 10:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册