MS SQL2005 XML 字段 查询 操作笔记
为了方便记忆,把 xml 的一些操作记录,方便自己看。呵呵
?
更新Visor 这个 XMl 字段的内容
declare @IP varchar(15)
set @IP='192.168.200.1'
?
update T_Notice set Vistor.modify(
'insert <IP>{sql:variable("@IP")}</IP> into (/Vistor)[1]'
)
?
--<IP>192.168.200.0</IP>
?
update T_Notice set Vistor.modify(
'insert <IP Value="{sql:variable("@IP")}"></IP> into (/Vistor)[1]'
)
?
--<IP Value="192.168.200.0"></IP>
?
查询
select * from T_Notice?
where Vistor.exist('/Vistor/IP[@Value =sql:variable("@IP")]')=0
?
?
/********************************************************************************/
错误的SQL语句
update T_Notice set Vistor.modify('insert (<IP Value=sql:variable("@IP") Time=sql:variable("@LastTime") />) into (/Vistor)[1] ')
where Vistor.exist('/Vistor/IP[@Value =sql:variable("@IP")]')=0
正确的SQL语句
update T_Notice set Vistor.modify(
'insert <IP Value="{sql:variable("@IP")}" Time="{sql:variable("@IP")}"></IP> into (/Vistor)[1]'
)
/********************************************************************************/
?
连接2个表的试图
SELECT???? dbo.T_Notice.ID, dbo.T_Notice.Subject, dbo.T_Notice.SSID, ISNULL(dbo.T_Notice_Visitor.Visitor, '|') AS Visitor, dbo.T_Notice_Visitor.MAC
FROM???????? dbo.T_Notice LEFT OUTER JOIN
????????????????????? dbo.T_Notice_Visitor ON dbo.T_Notice_Visitor.NoticeID = dbo.T_Notice.ID
WHERE???? (dbo.T_Notice.STATE = 1)