--两种方式查询 DECLARE @varXML XML, @varXML1 XML --1、xml数据源为属性方式 SET @varXML = '<PARAM> <Row FID = "1" FName = "张三" /> <Row FID = "2" FName = "李四" /> <Row FID = "3" FName = "王五" /> </PARAM>' Select T.C.value('@FID','INT') AS FID, T.C.value('@FName','VARCHAR(20)') AS FName From @varXML.nodes('/PARAM/Row') T(C)
--2、xml数据源为标签方式 SET @varXML1 = '<PARAM> <Row><FID>"1"</FID><FName>"张三"</FName></Row> <Row><FID>"2"</FID><FName>"李四"</FName></Row> <Row><FID>"3"</FID><FName>"王五"</FName></Row> </PARAM>' Select T.C.value('(FID)[1]','INT') AS FID, T.C.value('(FName)[1]','VARCHAR(20)') AS FName From @varXML1.nodes('/PARAM/Row') T(C)
应用场景:对外提供的WebService,别人访问接口后,传入XML参数,直接将XML当做存储过程的参数,在存储过程中查询、游标等解析处理。