DECLARE @h int DECLARE @x xml SET @x = CAST( '<A> <B name="B1"> <C> <B id="1" name="B2"> <D id="1.1" name="D1"> <E id="1" /> <E id="2" /> </D> </B> </C> </B> </A>' AS xml) EXEC sp_xml_preparedocument @h OUTPUT, @x SELECT eId, bName FROM OPENXML(@h, '//E', 2) WITH ( eId varchar(5) '@id', bName varchar(5) 'ancestor::B[1]/@name') EXEC sp_xml_removedocument @h
source share