Clauza FOR XML
Clauza FOR XML pentru instructiunea SELECT a fost introdusa in SQL Server 2000 si permite generarea de xml dintr-un set de randuri. In SQL Server 2005 clauza este imbunatatita printre noutati fiind:
§ directiva TYPE – care permite returnarea rezultatului generat de interogarea FOR XML in formatul xml
§ directiva ELEMENTS pentru modul RAW - valoarea fiecarei coloane este mapata folosind un sub-element al elementului <row> (SQL Server 2000 folosind atribute)
§ specificarea unui nume pentru elementul <row>
§ suport pentru valorile NULL – coloanele cu valori NULL pot genera empty elements (elemente vide) cu atribututul xsi:nil prin specificarea optiunii XSINIL
§ generare schema – o data cu rezultatele interogarii se poate genera si o schema XSD pentru acestea folosind cuvantul cheie XMLSCHEMA
§ modul PATH – permite specificarea numelor coloanelor folosind sintaxa similara limbajului XPATH pentru maparea valorilor generate in atribute, elemente etc.
Exemple:
USE AdventureWorks;
GO
--exemplu directiva TYPE
SELECT ContactID AS Id_Contact,
FirstName AS Prenume, LastName AS Nume
FROM Person.Contact
FOR XML AUTO, TYPE;
-- exemplu directiva ELEMENTS
SELECT ProductModelID AS Id_Model, Name AS Nume
FROM Production.ProductModel
FOR XML RAW, ELEMENTS;
-- specificare nume pentru
-- elementul <row>
SELECT ProductModelID AS Id_Model, Name AS Nume
FROM Production.ProductModel
FOR XML RAW ('ProductModel');
-- suport pentru valorile NULL
SELECT ProductID AS Id_Produs, Name AS Nume, Color AS Culoare
FROM Production.Product
FOR XML RAW, ELEMENTS XSINIL;
-- modul PATH
SELECT ProductModelID AS "@Id_Produs",
Name AS Nume
FROM Production.ProductModel
FOR XML PATH;
Cristian Andrei Lefter, SQL Server MVP
MCT, MCSA, MCDBA, MCAD, MCSD .NET,
MCTS, MCITP - Database Administrator SQL Server 2005
http://sqlserver.ro