Informazioni sulla colonna XML Contact.AdditionalContactInfo
Nella tabella Contact sono archiviate le informazioni di contatto del cliente, ad esempio nome, numero di telefono e indirizzo di posta elettronica. La tabella contiene anche 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 AdventureWorks, 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 AdventureWorks ContactInfo
Schema AdventureWorks ContactRecord
Schema AdventureWorks 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>
Eseguire la query seguente per trovare altre istanze XML:
select AdditionalContactInfo
from Person.Contact