对XML的SQL迭代

时间:2011-11-30 19:46:25

标签: sql sql-server xml xpath xquery

我正在尝试从表中读取xml数据字段,并将此数据插入另一个数据库中。 XML文档如下所示:

<Master>
   <UserIds>
       <id>1</id>
       <id>2</id>
       <id>3</id>
       <id>4</id>
  </UserIds>
</Master>

我的想法是获得1个id并插入,获取另一个并插入,依此类推。我尝试使用xquery,但我能得到的最好的是所有数据,但我需要插入id分隔:/

有任何帮助吗? d:

2 个答案:

答案 0 :(得分:1)

DECLARE @x xml
SET @x = '<Master>
   <UserIds>
       <id>1</id>
       <id>2</id>
       <id>3</id>
       <id>4</id>
  </UserIds>
</Master>'

INSERT TableName
    SELECT T.c.value('.', 'int' )
    FROM @x.nodes('//id') T(c)

答案 1 :(得分:0)

declare @xml xml = 
'<Master>
   <UserIds>
       <id>1</id>
       <id>2</id>
       <id>3</id>
       <id>4</id>
  </UserIds>
</Master>
'

insert into YourTable(ID)
select T.N.value('.', 'int')
from @xml.nodes('/Master/UserIds/id') as T(N)