使用sql server中的xml.nodes函数创建临时表

时间:2012-07-04 13:18:41

标签: sql sql-server

我有下面的xml结构。我试图通过使用返回结果创建一个临时表,但我无法做到。

declare @xml xml
set @xml = '
<Root>
  <ValueHolder>
     <Value>3.00</Value>
     <IsNoteDirty>false</IsNoteDirty>
     <Timestamp>
        <StampType>Month</StampType>
        <Stamp>3</Stamp>
        <Year>2007</Year>
     </Timestamp>
     </ValueHolder>
  <ValueHolder>
     <Value>23.00</Value>
     <IsNoteDirty>false</IsNoteDirty>
     <Timestamp>
        <StampType>Month</StampType>
        <Stamp>3</Stamp>
        <Year>2007</Year>
     </Timestamp>
     </ValueHolder>
</Root>'


select Tab.Col.value('(Value)[1]','MONEY') 
          from @xml.nodes('/Root/ValueHolder') Tab(Col)

此代码非常完美。我想要做的是,将此结果放入临时表。我试过这个,但它不起作用

select * into #TempTable
    from (select Tab.Col.value('(Value)[1]','MONEY') 
          from @xml.nodes('/Root/ValueHolder') Tab(Col))

错误消息是

  

Msg 102,Level 15,State 1,Line 26')'附近的语法不正确。

1 个答案:

答案 0 :(得分:3)

尝试这样的事情:

select MoneyValue = Tab.Col.value('(Value)[1]', 'MONEY') 
into #TempTable
from @xml.nodes('/Root/ValueHolder') Tab(Col) 

如果我这样做就行得很好。