SLIDE 6 6
“SQL/XML” – SELECT .. FOR XML
SELECT dname as "Name", loc as "Location", (SELECT empno as "employeeNumber", (SELECT ename as "Name", job as "Title", mgr as "Manager", CONVERT(CHAR(10),hiredate,20) as "StartDate", sal as "Salary", comm as "Commission" FROM Emp e
WHERE Employee.empno = e.empno FOR XML AUTO, TYPE, ELEMENTS) -- ~ XMLForest(...) FROM Emp Employee WHERE Employee.deptno = Department.deptno FOR XML AUTO, TYPE,
- - ~ XMLAgg(XMLElement("Employee", XMLAttributes ("employeeNumber")))
ROOT('EmployeeList'))
- - ~ XMLElement("EmployeeList"
FROM Dept Department FOR XML AUTO, ELEMENTS
- - ~ XMLElement("Department")
GO
SQL Server 2005
Relational View on XML data - OpenXML
CREATE TABLE PublishedMedia (ISBN int PRIMARY KEY, Title varchar(50), Publisher varchar(50)) GO CREATE PROCEDURE [dbo].[xml_insert] (@doc NTEXT) AS BEGIN declare @idoc int
- - Create the internal representation
exec sp_xml_preparedocument @idoc OUTPUT, @doc
- - SELECT statement using OPENXML rowset provider
INSERT INTO PublishedMedia SELECT * FROM OPENXML (@idoc, '/Books/Book', 1) WITH (ISBN int '@ISBN', Title varchar(50) '@Title', Publisher varchar(50) '@Publisher')
- - Remove the internal representation
EXEC sp_xml_removedocument @idoc END GO
SQL Server 2005