Sobre a coluna xml Contact.AdditionalContactInfo
A tabela Contato armazena informações típicas de contato de clientes, como nome, número de telefone e endereço de email. Essa tabela também tem uma coluna de tipo xml nomeada AdditionalContactInfo.
Os clientes podem ter vários telefones, celulares, emails e pagers. Como o número exato de pontos de contato adicionais podem não estar disponíveis na hora do design, não é possível saber quantas colunas serão necessárias para armazenar essas informações. Em vez de criar várias colunas para conter essas informações e, em seguida armazenar valores NULL, você pode criar uma única coluna de tipo XML para armazenar documentos XML que contêm informações de contato de cada cliente.
No banco de dados AdventureWorks, essa coluna é nomeada AdditionalContactInfo. Em seguida, essas informações adicionais de contato podem ser compartilhadas com outros aplicativos. Por exemplo, essas informações podem ser úteis para um aplicativo CRM (Gerenciamento de Relacionamento com o Cliente).
O aplicativo CRM também pode armazenar informações de contato nessa coluna. Isso pode incluir informações como a data que um cliente foi contatado e as notas da conversação.
Essa é uma coluna xml com tipo. Os esquemas usados para essa coluna podem ser exibidos neste site da Microsoft. Essa coluna usa os seguintes esquemas:
Esquema AdventureWorks ContactInfo
Esquema AdventureWorks ContactInfo
Esquema AdventureWorks ContactTypes
Instância XML de exemplo armazenada nesta coluna
O seguinte é o exemplo da instância 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>If correspondance to the primary address
fail, try this one</act:SpecialInstructions>
</act:homePostalAddress>
Customer provided additional email address.
<act:eMail>
<act:eMailAddress>customer1@xyz.com</act:eMailAddress>
<act:SpecialInstructions>Dont send emails for urgent issues. Instead use
this emergency contact phone
<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>
Execute a consulta a seguir para localizar mais instâncias XML:
select AdditionalContactInfo
from Person.Contact