1 --以默认的<row></row>包裹一个行对象,列名为属性名,值为行值
2 SELECT TOP 1000 * FROM [AdventureWorks2008R2].[Person].[Person] FOR XML RAW
3
4 --以默认的<row></row>包裹一个行对象,列名为元素名,包裹行值
5 SELECT TOP 1000 * FROM [AdventureWorks2008R2].[Person].[Person] FOR XML RAW , ELEMENTS
6
7 --以自定义<PersonDetails></PersonDetails>包裹一个行对象,列名为元素名,包裹行值
8 SELECT TOP 1000 * FROM [AdventureWorks2008R2].[Person].[Person] FOR XML RAW('PersonDetails') , ELEMENTS
9
10
11 --与FOR XML RAW 差不多,只是会自动以表名称包裹一个行对象,
12 SELECT TOP 1000 * FROM [Person].[Person] FOR XML AUTO
13
14 --
15 CREATE TABLE xmltest
16 (
17 xid INT NOT NULL PRIMARY KEY,
18 xdoc XML NOT NULL
19 )
20
21 SELECT * FROM dbo.xmltest
22
23 INSERT INTO dbo.xmltest
24 VALUES ( 1, '
25 <states>
26 <state>
27 <abbr>CA</abbr>
28 <name>California</name>
29 <city>Berkeley</city>
30 <city>Los Angeles</city>
31 </state>
32 <state>
33 <abbr>DE</abbr>
34 <name>Delaware</name>
35 <city>Newark</city>
36 <city>Wilmington</city>
37 </state>
38 </states>
39 ' )
40
41
42 INSERT INTO dbo.xmltest
43 VALUES ( 2, '
44 <states>
45 <state>
46 <abbr>CA</abbr>
47 <name>California</name>
48 <city>Berkeley</city>
49 <city>Los Angeles</city>
50 </state>
51 <state>
52 <abbr>DE</abbr>
53 <name>Delaware</name>
54 <city>Newark</city>
55 <city>Wilmington</city>
56 </state>
57 </states>
58 ' )
59
60 SELECT * FROM dbo.xmltest
61
62
63
64
1 DECLARE @xmlDoc XML;
2
3 SET @xmlDoc = '<book id="0001">
4 <title>C Program</title>
5 <author>David</author>
6 <price>21</price>
7 </book>'
8
9
10 SELECT @xmlDoc.query('/book/title')
11
12 SELECT @xmlDoc.value('(/book/title)[1]', 'nvarchar(max)')
13
14 SELECT @xmlDoc.value('(/book/@id)[1]', 'nvarchar(max)')