2011-06-16 102 views
0

我已经声明@xmldata为xml。如何阅读?我试过sql server 2005 xquery读取xml类型

declare @xmldata as xml 

set @xmldata = <root><row ename='abc' eid='1'/></root> 

SELECT @XMLDATA 

但它返回一个错误。我想从上面的xml类型获取eid列。

回答

0

试试这个:

declare @xmldata as xml 
set @xmldata = '<root><row ename="abc" eid="1"/></root>' 

SELECT  
    @xmldata.value('(/root/row/@eid)[1]', 'int') AS 'EID' 

更新:,如果你需要从表中选择和提取XML列的东西,用这个办法:

SELECT 
    tbl.ID, 
    tbl.XmlColumn.value('(/root/row/@ename)[1]', 'varchar(25)') AS 'EName' 
FROM 
    dbo.YourTable tbl 
WHERE 
    (...some condition here...) 
+0

日Thnx以上marc..the工作得很好。如果我有更多的行..如何选择*从XML检索所有行,并从XML选择ename检索选定的列.. – lsharma 2011-06-16 11:04:26

+0

@Isharma:更新我的回应 – 2011-06-16 12:27:42