SQL Server Table中XML列的操作代码

2022-05-24 0 412

复制代码 代码如下:

–创建测试表

DECLARE @Users TABLE

(

ID INT IDENTITY(1,1),

UserInfo XML

)

—插入测试数据

DECLARE @xml XML

SET @xml=’

<root>

<user>

<userid>1</userid>

<userName>test1</userName>

</user>

</root>’

INSERT INTO @Users(UserInfo)VALUES(@xml)

–插入单节点,(类型:as first,as last,after(默认),before)

UPDATE @Users SET UserInfo.modify(‘insert <address>shanghai</address>

into (/root/user)[1]’)

–插入多节点以’,’分割

UPDATE @Users SET UserInfo.modify(‘insert (<firstName>steven</firstName>,

<lastName>shi</lastName>) into (/root/user)[1]’)

— 增加属性

declare @editTime varchar(23);

set @editTime=CONVERT(VARCHAR(23), GETDATE(), 121);

UPDATE @Users SET UserInfo.modify(

N’insert (attribute editTime {sql:variable(“@editTime”)})

into(/root/user/userid)[1]’

)

–插入多属性以’,’分割

declare @aid float,@bid float

set @aid=0.5

UPDATE @Users SET UserInfo.modify(‘insert (attribute aid {sql:variable(“@aid”)},

attribute bid {“test”}

)

into (/root/user)[1]’)

—插入注释

UPDATE @Users SET UserInfo.modify(N’insert <!– 注释 –>

before (/root/user/userid[1])[1]’)

—插入处理指令

UPDATE @Users SET UserInfo.modify(‘insert <?Program = “A.exe” ?>

before (/root)[1]’)

—插入CDATA

UPDATE @Users SET UserInfo.modify(N’insert <C><![CDATA[<city>北京</city> or cdata]]> </C>

after (/root/user)[1]’)

—插入文本

UPDATE @Users SET UserInfo.modify(N’insert text{“插入文本”} as first

into (/root/user)[1]’)

—根据 if 条件语句进行插入

—判断属性值

UPDATE @Users SET UserInfo.modify(‘insert if(/root/user[@ID=1]) then (<tel>888888</tel>)

else (<qq>66666</qq>)

into (/root/user)[1]’)

—-判断节点Value

UPDATE @Users SET UserInfo.modify(‘insert if(/root/user[firstName=”steven1″]) then (<tel>1111</tel>)

else (<qq>2222</qq>)

into (/root/user)[1]’)

—-判断user 节点数是否小于等于10

UPDATE @Users SET UserInfo.modify(‘insert if (count(/root/user)<=10) then element user { “This is a new user” }

else () as last

into (/root)[1]’)

SELECT * FROM @Users

–有命名空间的操作

–DECLARE @xml XML

— SET @xml='<root xmlns=”http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/users”>

— <user>

— <userid>1</userid>

— <userName>test1</userName>

— </user>

— </root>’

— INSERT INTO Users(UserInfo)VALUES(@xml)

— UPDATE Users SET UserInfo.modify(‘

— declare namespace UI=”http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/users”;

— insert <UI:user>

— <UI:firstName>steven2</UI:firstName>

— </UI:user> as first

— into (/UI:root)[1]’)

— SELECT * FROM Users

— UPDATE Users SET UserInfo.modify(‘

— declare namespace UI=”http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/users”;

— insert attribute ID { “55” }

— into (/UI:root/UI:user)[1]’)

免责声明:
1、本网站所有发布的源码、软件和资料均为收集各大资源网站整理而来;仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 不得使用于非法商业用途,不得违反国家法律。否则后果自负!

2、本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与www.niceym.com无关。
如果您喜欢该程序,请支持正版源码、软件,购买注册,得到更好的正版服务。
如有侵犯你版权的,请邮件与我们联系处理(邮箱:skknet@qq.com),本站将立即改正。

NICE源码网 MsSql SQL Server Table中XML列的操作代码 https://www.niceym.com/60379.html