USE Northwind
--WRITE XML
--Convert query results to XML
SELECT CustomerID, ContactName, CompanyName
FROM Customers
WHERE (CustomerID = N'ALFKI'
OR CustomerID = N'ANATR')
ORDER BY CustomerID
FOR XML RAW -- RAW indicates a generic identifier
as the element tag
--RETRIEVE XML
--Declare integer variable to point to XML string
DECLARE @TestDoc INT
--Parse XML String to return handle to @TestDoc
EXEC sp_xml_preparedocument @TestDoc OUTPUT,
N'
'
--Use SELECT statements with OPENXML function to query XML string
SELECT *
FROM OPENXML(@TestDoc, N'/ROOT/Employees')
WITH (EmpID NCHAR(5) './@EmpID', --Declare data types for XML columns
FirstName VARCHAR(50) './@FirstName',
Dept VARCHAR(10) './@Dept')
SELECT EmpID, FirstName
FROM OPENXML(@TestDoc, N'/ROOT/Employees')
WITH (EmpID NCHAR(5) './@EmpID',
FirstName VARCHAR(50) './@FirstName',
Dept VARCHAR(10) './@Dept')
ORDER BY FirstName
--Save memory by removing internal XML representation
EXEC sp_xml_removedocument @TestDoc