XML

11/03/2006 - 20:08 por Jorge | Informe spam
Saludos Amigos. Ahora que SQL 2005 tiene a XML como tipo de dato como
trabajaria con las tablas utilizando las sentencias Select, Delete, Insert y
Update, por ejemplo la tabla Sales.individual de la Base de Datos
AdventureWorks tiene un campo llamado Demographics de Tipo XML donde estan
algunos detalles de clientes.

Como podria hacer un seleccion directamente desde un Query. de los datos
contenidos en el XML, es decir el primer registro de esta tabla posee este
XML en la columnaDemographics:

<IndividualSurvey
xmlns="http://schemas.microsoft.com/sqlser...">

<TotalPurchaseYTD>8248.99</TotalPurchaseYTD>

<DateFirstPurchase>2001-07-22Z</DateFirstPurchase>

<BirthDate>1966-04-08Z</BirthDate>

<MaritalStatus>M</MaritalStatus>

<YearlyIncome>75001-100000</YearlyIncome>

<Gender>M</Gender>

<TotalChildren>2</TotalChildren>

<NumberChildrenAtHome>0</NumberChildrenAtHome>

<Education>Bachelors </Education>

<Occupation>Professional</Occupation>

<HomeOwnerFlag>1</HomeOwnerFlag>

<NumberCarsOwned>0</NumberCarsOwned>

<CommuteDistance>1-2 Miles</CommuteDistance>

</IndividualSurvey>

Yo quisiera hacer lo siguiente :

Select CustomerID, TotalPurchaseYTD,YearlyIncome From Sales.individual

Notece que estoy haciendo seleccion a datos contenidos dentro del XML, seria
sencillo que si existieces las columnas TotalPurchaseYTD,YearlyIncome, etc
(todas las etiquetas del XML) para hacer la seleccion.

Como podria obtener lo que deseo...Espero me hayan entendidoGracias.
 

Leer las respuestas

#1 Antonio Soto
12/03/2006 - 10:52 | Informe spam
Hola Jorge

Para realizar ese tipo de consultas debes de utilizar el soporte de XQuery
que proporcionar SQL Server 2005. Busca XQuery en tus libros en pantalla y
ahí encontrarás varios ejemplos de como hacerlo


Este es uno de los ejemplos:

SELECT Instructions.query('declare namespace
AWMI="http://schemas.microsoft.com/sqlser...ons";
/AWMI:root/AWMI:Location[@LocationID]
') as Result
FROM Production.ProductModel
WHERE ProductModelID=7Saludos

Antonio Soto
"Jorge" escribió en el mensaje
news:%
Saludos Amigos. Ahora que SQL 2005 tiene a XML como tipo de dato como
trabajaria con las tablas utilizando las sentencias Select, Delete, Insert
y Update, por ejemplo la tabla Sales.individual de la Base de Datos
AdventureWorks tiene un campo llamado Demographics de Tipo XML donde estan
algunos detalles de clientes.

Como podria hacer un seleccion directamente desde un Query. de los datos
contenidos en el XML, es decir el primer registro de esta tabla posee este
XML en la columnaDemographics:

<IndividualSurvey
xmlns="http://schemas.microsoft.com/sqlser...">

<TotalPurchaseYTD>8248.99</TotalPurchaseYTD>

<DateFirstPurchase>2001-07-22Z</DateFirstPurchase>

<BirthDate>1966-04-08Z</BirthDate>

<MaritalStatus>M</MaritalStatus>

<YearlyIncome>75001-100000</YearlyIncome>

<Gender>M</Gender>

<TotalChildren>2</TotalChildren>

<NumberChildrenAtHome>0</NumberChildrenAtHome>

<Education>Bachelors </Education>

<Occupation>Professional</Occupation>

<HomeOwnerFlag>1</HomeOwnerFlag>

<NumberCarsOwned>0</NumberCarsOwned>

<CommuteDistance>1-2 Miles</CommuteDistance>

</IndividualSurvey>

Yo quisiera hacer lo siguiente :

Select CustomerID, TotalPurchaseYTD,YearlyIncome From Sales.individual

Notece que estoy haciendo seleccion a datos contenidos dentro del XML,
seria sencillo que si existieces las columnas
TotalPurchaseYTD,YearlyIncome, etc (todas las etiquetas del XML) para
hacer la seleccion.

Como podria obtener lo que deseo...Espero me hayan entendidoGracias.

Preguntas similares