<Array><obj><id>1</id><name>name1</name></obj><obj><id>2</id><name>name2</name></obj></Array>
假设我有一个类似上面的xml
我想把它插入一个表中,比如"tablexml">
我的代码像这个
INSERT INTO tableXml
(
,name
)
SELECT
,name
FROM OPENXML(@docHandle,'/Array/obj',2)
WITH(
name varchar 'name'
)
这是通过自动递增pk将xml中的数组正确地插入到表CCD_ 1中,但我想要的是我想在xml中插入id,id作为PK插入到循环内的另一个表tableXml
我找了很多,但没有找到答案,我只能得到最后一张唱片
请帮助
您不应该使用旧的OPENXML
函数,因为它有很多问题。
相反,使用较新的XQuery语法
INSERT tableXml (id, name)
SELECT
x.obj.value('(id/text())[1]','int'),
x.obj.value('(name/text())[1]','varchar(100)')
FROM @xml.nodes('/Array/obj') x(obj);
db<gt;小提琴