Compartir a través de


Columna XML Contact.AdditionalContactInfo

En la tabla Person, se almacena la típica información de contacto de los clientes, como el nombre, el número de teléfono y la dirección de correo electrónico. Esta tabla también tiene una columna de tipo xml denominada AdditionalContactInfo.

Los clientes pueden tener varios teléfonos, móviles, direcciones de correo electrónico o buscapersonas. Dado que el número exacto de puntos de contacto adicionales puede no conocerse en el momento del diseño, no es posible saber cuántas columnas se necesitarán para almacenar la información. En lugar de crear varias columnas para incluir esta información y luego tener que almacenar valores NULL, se puede crear una sola columna de tipo XML para almacenar documentos XML que contengan los datos de contacto adicionales de cada cliente.

En la base de datos AdventureWorks2008R2, esta columna se denomina AdditionalContactInfo. De este modo, estos datos de contacto adicionales se pueden compartir con otras aplicaciones. Por ejemplo, la información puede ser útil para una aplicación de administración de las relaciones con los clientes (CRM).

La aplicación de CRM también podría almacenar información de contacto en esta columna. Podría incluir datos como la fecha en que se entró en contacto con un cliente y las notas de la conversación.

Esta es una columna xml con tipo. Los esquemas que se usan para esta columna pueden verse en este sitio web de Microsoft. Esta columna emplea los siguientes esquemas:

  • Esquema ContactInfo

  • Esquema ContactRecord

  • Esquema ContactTypes

Ejemplo de instancia XML almacenada en esta columna

A continuación, se muestra el ejemplo de instancia XML:

<AdditionalContactInfo xmlns="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo" xmlns:crm="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactRecord" xmlns:act="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes">

<act:telephoneNumber>

<act:number>111-111-1111</act:number>

<act:SpecialInstructions>

Call only after 5PM.

</act:SpecialInstructions>

</act:telephoneNumber>

Note that customer has second home at this address.

<act:homePostalAddress>

<act:Street>123 Oak</act:Street>

<act:City>Seattle</act:City>

<act:StateProvince>WA</act:StateProvince>

<act:PostalCode>777</act:PostalCode>

<act:CountryRegion>USA</act:CountryRegion>

<act:SpecialInstructions>Si la correspondencia con la dirección principal

fail, try this one</act:SpecialInstructions>

</act:homePostalAddress>

Customer provided additional email address.

<act:eMail>

<act:eMailAddress>customer1@xyz.com</act:eMailAddress>

<act:SpecialInstructions>No enviar mensajes de correo para cuestiones urgentes. Utilice en su lugar

este teléfono de contacto de emergencia

<act:telephoneNumber>

<act:number>112-111-1111</act:number>

</act:telephoneNumber>.

</act:SpecialInstructions>

</act:eMail>

<crm:ContactRecord date="2001-06-02Z">This customer is interested in

puchasing a high end bicycles for his family. The customer

contacted Mike in sales.

</crm:ContactRecord>

</AdditionalContactInfo>

Ejecute la consulta siguiente para encontrar más instancias XML:

USE AdventureWorks2008R2;
GO
SELECT AdditionalContactInfo
FROM   Person.Person
WHERE AdditionalContactInfo IS NOT NULL;

Vea también

Conceptos