Welcome to Sign in | Join | Help

Clauza FOR XML

  •  10-19-2006, 10:57 AM

    Clauza FOR XML

    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
    Filed under: ,
View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems