declare @xmlDoc xml,@id varchar(50); set @xmlDoc='<DocObjContent> <NewCtrl Id="0001"> <Content_Text>C# Program</Content_Text> <Content_Text>Java Program</Content_Text> </NewCtrl> <NewCtrl Id="0002"> <Content_Text>Java Program</Content_Text> </NewCtrl> <NewCtrl Id="Reference_111102102101" Type="3"> <Content_Text>1.XXXXX 2.XXXXX</Content_Text> </NewCtrl> </DocObjContent>' select @xmlDoc.query('(/DocObjContent/NewCtrl[@Id="Reference_111102102101"])').value('(/NewCtrl/Content_Text)[1]', 'nvarchar(max)') select @xmlDoc.value('(/DocObjContent/NewCtrl[@Id="Reference_111102102101"]/Content_Text)[1]','nvarchar(max)')
@xmlDoc.value('(/DocObjContent/NewCtrl[@Id=sql:variable("@id")]/Content_Text)[1]','nvarchar(max)')
--动态传值
set @id='Reference_111102102101'
select @xmlDoc.value('(/DocObjContent/NewCtrl[@Id=sql:variable("@id")]/Content_Text)[1]','nvarchar(max)')