uso de la sentencia for xml

9
Julián Castiblanco P. http://julycastiblanco.blogspot.com/ [email protected] MCT-MCSA-MCITP-MCTS SQL Server 2008/2005 Líder ITPros-DC Querying Microsoft SQL Server 2012 Exam 70-461 Capítulo 6 XML

Upload: julian-castiblanco-p

Post on 12-Jul-2015

660 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: USO DE LA SENTENCIA FOR XML

Julián Castiblanco P.http://julycastiblanco.blogspot.com/

[email protected]

MCT-MCSA-MCITP-MCTS SQL Server 2008/2005

Líder ITPros-DC

Querying Microsoft SQL Server 2012Exam 70-461Capítulo 6 – XML

Page 2: USO DE LA SENTENCIA FOR XML

Material de trabajo

Windows Server 2012 trialhttp://www.microsoft.com/en-us/download/details.aspx?id=11093

SQL Server 2012 with SP1 trialhttp://www.microsoft.com/en-us/download/details.aspx?id=29066

AdventureWorks for SQL Server 2012http://msftdbprodsamples.codeplex.com/releases/view/55330

Training kit SQL Server Querying Microsoft SQL Server 2012 – exam 70-461http://www.amazon.com/Training-Kit-Exam-70-461-Microsoft/dp/0735666059/ref=sr_1_1?ie=UTF8&qid=1359206206&sr=8-1&keywords=querying+microsoft+sql+server+2012+training+kit+exam+70-461

Page 3: USO DE LA SENTENCIA FOR XML

• Recuperación de XML mediante FOR XML

• Fragmentación de XML mediante OPENXML

• Uso del tipo de datos xml

Agenda

Page 4: USO DE LA SENTENCIA FOR XML

• Devuelve XML en lugar de filas y columnas

• Se puede configurar para que devuelva atributos, elementos y esquema

• Beneficia a las aplicaciones cliente que funcionan con XML

Cláusula FOR XML

Page 5: USO DE LA SENTENCIA FOR XML

FOR XML RAW

SELECT b.NameTerritorio, C.City, COUNT(*) ASnumordersFROM sales.SalesOrderHeader AS AINNER JOIN SALES.SalesTerritory AS BON A.TerritoryID=b.TerritoryIDINNER JOIN [Person].[Address] AS CON A.ShipToAddressID=C.AddressIDINNER JOIN [Person].[StateProvince] AS DON C.StateProvinceID=D.StateProvinceIDWHERE b.Name='France'GROUP BY b.Name, C.CityFOR XML RAW

Page 6: USO DE LA SENTENCIA FOR XML

FOR XML AUTO

SELECT b.NameTerritorio, C.City, COUNT(*) ASnumordersFROM sales.SalesOrderHeader AS AINNER JOIN SALES.SalesTerritory AS BON A.TerritoryID=b.TerritoryIDINNER JOIN [Person].[Address] AS CON A.ShipToAddressID=C.AddressIDINNER JOIN [Person].[StateProvince] AS DON C.StateProvinceID=D.StateProvinceIDWHERE b.Name='France'GROUP BY b.Name, C.CityFOR XML AUTO

Page 7: USO DE LA SENTENCIA FOR XML

FOR XML EXPLICIT

SELECT top 10 1 AS Tag,NULL AS Parent,SalesOrderID AS[Invoice!1!InvoiceNo!Element],OrderDate AS [Invoice!1!Date!Element]FROMSales.SalesOrderheaderFOR XML EXPLICIT

Page 8: USO DE LA SENTENCIA FOR XML

FOR XML PATH

------------------------------------FOR XML PATH----------------------------------

SELECT vC.BusinessEntityID"@customerID",sc.AccountNumber "@accountNumber",FirstName "Customer/FirstName",LastName "Customer/Lastname"

FROMSALES.vIndividualCustomer asvC INNER JOIN Sales.Customer as scON vC.BusinessEntityID=sc.PersonIDFOR XML PATH

Page 9: USO DE LA SENTENCIA FOR XML

FUNCIONES ADICIONALES

ELEMENT Cambia atributos por Elementos

ROOTColoca un elemento Raiz

TYPEInforma al motor que la información generada es de tipo XML

ABSENT|XSINIL Decidir si se mostraran valores

en nulo