2014-01-31 20 views
0

Я работаю над проблемой, даже мои коллеги говорят, что это невозможно. В нашей базе данных есть XML, и я хочу, чтобы иметь возможность принимать отдельные атрибуты из XML и устанавливать их равными переменным, с которыми нужно работать. Это мой код до сих пор (это не работает).Установка переменной, равной переменной в SQL Server

declare @MyText varchar(10) 

    declare @MyXML XML 
    set @MyXML = ' 
    <ns0:TestXML xmlns:ns0="http://test.com"> 
    <TestValue>11</TestValue> 
    </ns0:TestXML>' 


    set @MyText = 
    (
     ;with XMLNAMESPACES ('http://test.com' as ns0) 
     set @MyText = 
     (
      select 
       a.bo.value('(/ns0:TestXML2[1]/TestXML3)[1]','INT') as [Number] 
      from @MyXML.nodes('ns0:TestXML') a(bo) 
     ) 
    ) 

Любая помощь была бы принята с благодарностью, спасибо. Кроме того, если моя логика полностью отключена от того, как SQL работает с XML, пожалуйста, не стесняйтесь обучать меня.

+0

является XML, введенном в БД? – gh9

ответ

0

Как это, она возвращает 11 из предоставленного XML который является то, что вы хотите, я предполагаю:

declare @MyText varchar(10) 

declare @MyXML XML 
set @MyXML = ' 
<ns0:TestXML xmlns:ns0="http://test.com"> 
<TestValue>11</TestValue> 
</ns0:TestXML>' 

;with XMLNAMESPACES ('http://test.com' as ns0) 
    select @MyText = 
     a.bo.value('(/ns0:TestXML)[1]','INT') 
    from @MyXML.nodes('ns0:TestXML') a(bo) 

select @MyText as [TheImpossibleValue] 
Смежные вопросы