Вы можете использовать .Value
с запросами xpath. Вы также должны определить пространства имен:
declare @xml xml
set @xml='<Envelope xmlns="http://schemas.microsoft.com/dynamics/2011/01/documents/Message"> <Header> <MessageId>{D5AAFEB2-CD15-4ACF-ABA2-E5F10A49BEBA}</MessageId> <Action>http://schemas.microsoft.com/dynamics/2011/01/services/AAFixedAssetService/find</Action> </Header> <Body> <MessageParts xmlns="http://schemas.microsoft.com/dynamics/2011/01/documents/Message"> <AAFixedAsset xmlns="http://schemas.microsoft.com/dynamics/2008/01/documents/AAFixedAsset"> <DocPurpose>Original</DocPurpose> <SenderId>amau</SenderId> <ValidAsOfDateTime>2017-02-09T17:23:44Z</ValidAsOfDateTime> <ValidTimeStateType>AsOf</ValidTimeStateType> <AssetTable class="entity"> <_DocumentHash>4fd64a2258e0b81d684de1cc5f0248c5</_DocumentHash> <AAIsSent>No</AAIsSent> <AssetId>BU00001</AssetId> <WorkerResponsible>9998</WorkerResponsible> <AssetBook class="entity"> <AcquisitionDate>2017-01-05</AcquisitionDate> <AcquisitionPrice>100.00</AcquisitionPrice> <AssetId>BU00001</AssetId> <BookId>ST</BookId> <DisposalDate>2017-01-14</DisposalDate> </AssetBook> <HcmWorker class="entity"> <Person>000001292</Person> <PersonnelNumber>9998</PersonnelNumber> <RecId>5637151331</RecId> <DirPersonName class="entity"> <FirstName>Amsa</FirstName> <LastName>Sampathkumar test</LastName> </DirPersonName> </HcmWorker> <AAAssetTable class="entity"> <SubGroupId>02</SubGroupId> </AAAssetTable> </AssetTable> <AssetTable class="entity"> <_DocumentHash>94dab7dab57d3e270668726992deaab7</_DocumentHash> <AAIsSent>No</AAIsSent> <AssetId>CP00001</AssetId> <WorkerResponsible>74</WorkerResponsible> <AssetBook class="entity"> <AcquisitionDate>2017-01-06</AcquisitionDate> <AssetId>CP00001</AssetId> <BookId>ST</BookId> </AssetBook> <HcmWorker class="entity"> <Person>000000981</Person> <PersonnelNumber>74</PersonnelNumber> <RecId>5637149826</RecId> <DirPersonName class="entity"> <FirstName>Arun</FirstName> </DirPersonName> </HcmWorker> <AAAssetTable class="entity"> <SubGroupId>01</SubGroupId> </AAAssetTable> </AssetTable> </AAFixedAsset> </MessageParts> </Body> </Envelope>'
;
WITH XMLNAMESPACES ('http://schemas.microsoft.com/dynamics/2011/01/documents/Message' as ns1,
'http://schemas.microsoft.com/dynamics/2008/01/documents/AAFixedAsset' as ns2 )
select @xml.value('(/ns1:Envelope/ns1:Body/ns1:MessageParts/ns2:AAFixedAsset/ns2:AssetTable/ns2:AssetId)[1]', 'varchar(max)') as AssetId
,@xml.value('(/ns1:Envelope/ns1:Body/ns1:MessageParts/ns2:AAFixedAsset/ns2:AssetTable/ns2:AssetBook/ns2:AcquisitionDate)[1]', 'varchar(max)') as AcquisitionDate
,@xml.value('(/ns1:Envelope/ns1:Body/ns1:MessageParts/ns2:AAFixedAsset/ns2:AssetTable/ns2:HcmWorker/ns2:DirPersonName/ns2:FirstName)[1]', 'varchar(max)') as FirstName
,@xml.value('(/ns1:Envelope/ns1:Body/ns1:MessageParts/ns2:AAFixedAsset/ns2:AssetTable/ns2:HcmWorker/ns2:DirPersonName/ns2:LastName)[1]', 'varchar(max)') as LastName
Результат:
