Informazioni sulla colonna XML Contact.AdditionalContactInfo

Nella tabella Person sono archiviate le informazioni di contatto del cliente, ad esempio nome, numero di telefono e indirizzo di posta elettronica. La tabella contiene inoltre una colonna di tipo xml denominata AdditionalContactInfo.

I clienti possono disporre di più numeri di telefono, di cellulare e di cercapersone e di più indirizzi di posta elettronica. Poiché il numero esatto di informazioni aggiuntive disponibili può non essere noto al momento della progettazione, non è possibile sapere quante colonne saranno necessarie per l'archiviazione di tutti i dati. Anziché creare più colonne per contenere tali informazioni e dover probabilmente inserire valori NULL, è possibile creare un'unica colonna di tipo XML per l'archiviazione di documenti XML contenenti le informazioni di contatto aggiuntive per ogni cliente.

Nel database AdventureWorks2008R2 questa colonna è denominata AdditionalContactInfo. Le informazioni di contatto aggiuntive possono essere condivise con altre applicazioni. Ad esempio, queste informazioni potrebbero essere utili per un'applicazione CRM (gestione delle relazioni con i clienti, Customer Relations Management).

L'applicazione CRM può inoltre archiviare informazioni di contatto in questa colonna, ad esempio la data in cui il cliente è stato contattato e note sulla conversazione.

Si tratta di una colonna xml tipizzata. Gli schemi utilizzati per questa colonna sono disponibili in questo sito Web Microsoft. La colonna utilizza gli schemi seguenti:

  • Schema ContactInfo

  • Schema ContactRecord

  • Schema ContactTypes

Istanza XML di esempio archiviata in questa colonna

Di seguito è riportata l'istanza XML di esempio:

<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>

Per trovare altre istanze XML, eseguire la query seguente:

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

Vedere anche

Concetti