À propos de la colonne xml Contact.AdditionalContactInfo
La table Contact stocke des informations de contact courantes sur les clients, telles que le nom, le numéro de téléphone et l'adresse de messagerie. Cette table possède également une colonne de type xml nommée AdditionalContactInfo.
Les clients peuvent avoir plusieurs numéros de téléphone fixes ou mobiles, adresses de messagerie et adresses de radiomessagerie. Le nombre exact de points de contact supplémentaires n'étant pas forcément disponible au moment de la conception, il est impossible de connaître le nombre de colonnes qui seront nécessaires au stockage de ces informations. Par conséquent, au lieu de créer plusieurs colonnes susceptibles de contenir des valeurs NULL, vous pouvez créer une colonne unique de type XML destinée au stockage de documents XML, dans laquelle figurent les informations de contact supplémentaires relatives à chaque client.
Dans la base de données AdventureWorks, cette colonne est nommée AdditionalContactInfo. Ces informations de contact supplémentaires peuvent être partagées avec d'autres applications. Par exemple, ces informations peuvent s'avérer utiles pour une application de gestion des relations avec les clients (GRC).
L'application GRC peut également stocker des informations de contact dans cette colonne, telles que la date à laquelle un client a été contacté et les notes de la conversation.
Il s'agit d'une colonne xml typée. Les schémas utilisés pour cette colonne sont consultables sur ce site Web de Microsoft. Cette colonne utilise les schémas suivants :
- Schéma AdventureWorks ContactInfo
- Schéma AdventureWorks ContactRecord
- Schéma AdventureWorks ContactTypes
Exemple d'instance XML stockée dans cette colonne
L'exemple d'instance XML est le suivant :
<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>
Exécutez la requête suivante pour obtenir davantage d'instances XML :
select AdditionalContactInfo
from Person.Contact