0

我有下面的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))

错误信息是

消息 102,级别 15,状态 1,第 26 行 ')' 附近的语法不正确。

4

1 回答 1

3

尝试这样的事情:

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

如果我这样做,效果很好。

于 2012-07-04T13:32:38.670 回答