Informationen zur XML-Spalte Contact.AdditionalContactInfo
Die Person-Tabelle speichert typische Kontaktinformationen zu Kunden, z. B. Name, Telefonnummer und E-Mail-Adresse. Die Tabelle besitzt außerdem eine Spalte vom Typ xml mit dem Namen AdditionalContactInfo.
Kunden können mehrere Telefon- und Mobiltelefonnummern, E-Mail-Adressen oder Pager besitzen. Da die genaue Anzahl zusätzlicher Kontaktinformationen möglicherweise zur Entwurfszeit nicht bekannt ist, kann nicht ermittelt werden, wie viele Spalten zum Speichern dieser Informationen benötigt werden. Statt nun mehrere Spalten für die Zusatzinformationen zu jedem Kunden zu erstellen und anschließend NULL-Werte darin zu speichern, können Sie eine einzige Spalte vom Typ XML erstellen.
In der AdventureWorks2008R2-Datenbank hat diese Spalte den Namen AdditionalContactInfo. Diese zusätzlichen Kontaktinformationen können anschließend auch für andere Anwendungen freigegeben werden. Beispielsweise könnten diese Informationen für eine Customer Relations Management (CRM)-Anwendung interessant sein.
Es könnten aber auch Kontaktinformationen von der CRM-Anwendung aus in dieser Spalte gespeichert werden, z. B. das Datum, an dem der Kunde kontaktiert wurde, sowie Notizen zu dem Gespräch.
Es handelt sich hier um eine typisierte xml-Spalte. Die für diese Spalte verwendeten Schemas werden auf dieser Microsoft-Website angezeigt. Diese Spalte verwendet die folgenden Schemas:
ContactInfo-Schema
ContactRecord-Schema
ContactTypes-Schema
In dieser Spalte gespeicherte XML-Beispielinstanz
Im Folgenden ist die XML-Beispielinstanz aufgeführt:
<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>
Erst ab 17:00 Uhr anrufen.
</act:SpecialInstructions>
</act:telephoneNumber>
Kunde verfügt über zweite Privatadresse.
<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>Wenn keine Übereinstimmung mit erster Adresse
folgende verwenden</act:SpecialInstructions>
</act:homePostalAddress>
Kunde hat zusätzliche E-Mail-Adresse bereitgestellt.
<act:eMail>
<act:eMailAddress>customer1@xyz.com</act:eMailAddress>
<act:SpecialInstructions>In dringenden Fällen keine E-Mail-Nachricht senden. Stattdessen
die folgende Telefonnummer für Notfälle verwenden
<act:telephoneNumber>
<act:number>112-111-1111</act:number>
</act:telephoneNumber>.
</act:SpecialInstructions>
</act:eMail>
<crm:ContactRecord date="2001-06-02Z">Dieser Kunde hat Interesse am
Kauf von hochwertigen Fahrrädern für die Familie. Der Kunde
hat sich an Mike im Vertrieb gewendet.
</crm:ContactRecord>
</AdditionalContactInfo>
Führen Sie die folgende Abfrage aus, um weitere XML-Instanzen zu ermitteln:
USE AdventureWorks2008R2;
GO
SELECT AdditionalContactInfo
FROM Person.Person
WHERE AdditionalContactInfo IS NOT NULL;