从sqlserver中的xml批处理插入中获取标识Id


<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;小提琴

最新更新