SQL XML 类型插入操作
2010-12-17 14:35
330 查看
--创建测试数据库 CREATE DATABASE mytest; GO USE mytest; GO --创建测试表 CREATE TABLE Users ( ID INT IDENTITY(1,1), UserInfo XML ) /*****************插入单节点*****************************/ ---插入测试数据 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) --select * from Users --添加address节点,默认添加在所有节点之后 UPDATE Users SET UserInfo.modify('insert <address>shanghai</address> into (/root/user)[1]') SELECT * FROM Users --添加address节点,节点顺序为第一个 UPDATE Users SET UserInfo.modify('insert <address>shanghai</address> as first into (/root/user)[1]') SELECT * FROM Users --添加address节点,节点顺序为最后一个 UPDATE Users SET UserInfo.modify('insert <address>shanghai</address> as last into (/root/user)[1]') SELECT * FROM Users --添加address节点到某个节点之后 UPDATE Users SET UserInfo.modify('insert <address>shanghai</address> after (/root/user/userid)[1]') --添加address节点到某个节点之前 UPDATE Users SET UserInfo.modify('insert <address>shanghai</address> before (/root/user/userid)[1]') SELECT * FROM Users ---注:[1] 代表第一个item /*****************插入多节点*****************************/ --添加firstName and LastName,以,分割 UPDATE Users SET UserInfo.modify('insert (<firstName>steven</firstName>, <lastName>shi</lastName>) into (/root/user)[1]') SELECT * FROM Users /*****************插入节点属性*****************************/ ---在USER 节点插入ID 属性,并且值=1 UPDATE Users SET UserInfo.modify('insert attribute ID {"1"} into (/root/user)[1]') SELECT * FROM Users ---在USER 节点插入ID 属性,值为一个变量,这个应该更常用 declare @uid float set @uid=0.5 UPDATE Users SET UserInfo.modify('insert attribute UID {sql:variable("@Uid")} into (/root/user)[1]') SELECT * FROM Users ---如果插入多个属性,需要用,分割 declare @aid float,@bid float set @aid=0.5 set @bid=0.6 UPDATE Users SET UserInfo.modify('insert (attribute aid {sql:variable("@aid")}, attribute bid {sql:variable("@bid")} ) into (/root/user)[1]') SELECT * FROM Users /*****************插入节点注释*****************************/ ---insert 注释 UPDATE Users SET UserInfo.modify('insert <!-- 注释 --> before (/root/user/userid[1])[1]') SELECT * FROM Users /*****************插入处理指令*****************************/ UPDATE Users SET UserInfo.modify('insert <?Program = "A.exe" ?> before (/root)[1]') SELECT * FROM Users /*****************插入CDATA*****************************/ UPDATE Users SET UserInfo.modify('insert <C><![CDATA[<city>北京</city> or cdata]]> </C> after (/root/user)[1]') SELECT * FROM Users /*****************插入文本*****************************/ UPDATE Users SET UserInfo.modify('insert text{"插入文本"} as first into (/root/user)[1]') SELECT * FROM Users /*****************根据 if 条件语句进行插入*****************************/ ---判断属性值 UPDATE Users SET UserInfo.modify('insert if(/root/user[@ID=1]) then (<tel>888888</tel>) else (<qq>66666</qq>) into (/root/user)[1]') SELECT * FROM Users ----判断节点Value UPDATE Users SET UserInfo.modify('insert if(/root/user[firstName="steven1"]) then (<tel>1111</tel>) else (<qq>2222</qq>) into (/root/user)[1]') SELECT * FROM Users ----判断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 /*****************将节点插入类型化的 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]') SELECT * FROM Users
相关文章推荐
- SQL XML 类型插入操作
- SQL XML 类型插入操作
- 学习操作oracle.sql.Blob数据类型,向数据库插入Blob数据类型的数据
- T-SQL操作XML 数据类型方法 "modify" 的参数 1 必须是字符串文字。
- Sqlserver xml 类型操作
- SQL 中操作XML类型数据
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- SqlServer XML 类型数据操作
- 在C#中使用SqlDbType.Xml类型参数
- MS-SQL中Insert操作插入的中文变成问号"???"的解决办法
- oracle sql操作xml
- Cause: java.sql.SQLException: 无效的列类型: 1111(Mybatis中insert插入空值时,需要指定JdbcType)
- 在C#中使用SqlDbType.Xml类型参数
- 在C#中使用SqlDbType.Xml类型参数
- Oracle中使用SQL插入语句对类型为Timestamp和Date的字段赋值
- SQL Server 对XML数据类型的SQL语句总结
- Qt创建那个XML文档,并且对它实现查找,更新,插入等操作
- [转]T-SQL操作XML,用于自己慢慢吸收
- Sql操作带命名空间的xml
- Sqlserver in 实现 参数化查询 XML类型