SQL Server Table中XML列的操作代码
2022-11-12 09:48:01
内容摘要
这篇文章主要为大家详细介绍了SQL Server Table中XML列的操作代码,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
代码如下:
--创建测
文章正文
这篇文章主要为大家详细介绍了SQL Server Table中XML列的操作代码,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | <code> --创建测试表 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]') </code> |
注:关于SQL Server Table中XML列的操作代码的内容就先介绍到这里,更多相关文章的可以留意
代码注释