【发布时间】:2015-07-09 19:42:11
【问题描述】:
我正在读取 xml 并将其写入 sql 表中
想将下面的xml插入到表中
Declare @MainXml XML = '<Parent> <Root> <Admin>admin1</Admin> <Data number="1"> <Type value="100"></Type> <Type value="200"></Type> </Data> </Root> <Root> <Admin>admin2</Admin> <Data number="1"> <Type value="300"></Type> <Type value="400"></Type> </Data> </Root> </Parent>'我正在尝试像这样插入表格
Insert Into Table1(col1,col2) SELECT A.RT.value('Admin[1]','varchar(max)'), B.DT.value('@value','varchar(max)') FROM @MainXml.nodes('Parent/Root') as A(RT)cross apply A.RT.nodes('Data/Type') as B(DT)
它可以在上面的 xml 上正常工作。
如果部分被删除,它将无法工作。
为什么我的查询不适用于
Declare @MainXml XML = '<Parent> <Root> <Admin>admin1</Admin> </Root> <Root> <Admin>admin2</Admin> </Root> </Parent>'
我的 XML 中的部分可能存在也可能不存在。那么如何处理这样的xml。
如果没有数据,想给它输入null。
请给我建议。
【问题讨论】:
-
请修正您的标签以反映您正在使用的 RDBMS(MySQL 或 MS SQL-Server)。
标签: mysql sql-server xml rdbms