SQLServer 2005支持Xml格式的数据,我们可以利用这个特性将一些非结构化的数据保存在字段中,然后通过XQuery查询处结构化的数据。
例如,我们保存了一个页面的访问控制列表,用Xml格式存储了每个页面可访问的用户,数据表如下
Users Page
使用如下SQL语句可以查询出用户mars3可访问的的页面:
select * from (
select page,g.username.value('.','varchar(50)') as username
from testxml
CROSS APPLY userss.nodes('/Root/user/@name') as g(username)
) a
where username='mars3'
例如,我们保存了一个页面的访问控制列表,用Xml格式存储了每个页面可访问的用户,数据表如下
Users Page
| <Root><user name="mars" /><user name="test" /></Root> | 1 |
| <Root><user name="mars2" /><user name="test2" /></Root> | 2 |
| <Root><user name="mars3" /><user name="test3" /></Root> | 3 |
| <Root><user name="mars3" /><user name="test" /></Root> | 4 |
| <Root><user name="mars" /><user name="test1" /></Root> | 5 |
| NULL | NULL |
select * from (
select page,g.username.value('.','varchar(50)') as username
from testxml
CROSS APPLY userss.nodes('/Root/user/@name') as g(username)
) a
where username='mars3'
浙公网安备 33010602011771号