Об XML-столбце Contact.AdditionalContactInfo

Таблица Contact хранит обычные контактные данные заказчиков, такие как имя, номер телефона и адрес электронной почты. Эта таблица также содержит XML-столбец с именем AdditionalContactInfo.

У заказчиков может быть несколько телефонов, мобильных телефонов, адресов электронной почты и пейджеров. Так как точное число дополнительных контактных данных может быть недоступно во время проектирования, невозможно знать, сколько столбцов потребуется для хранения этих сведений. Вместо создания нескольких столбцов, содержащих эти сведения, и хранения значений NULL, можно создавать один XML-столбец для хранения XML-документов с дополнительными контактными данными для каждого заказчика.

В базе данных AdventureWorks этот столбец называется AdditionalContactInfo. Эти дополнительные контактные сведения могут быть предоставлены другим приложениям. Например, эти сведения могут быть полезны для приложений управления взаимоотношениями с клиентами (CRM).

Приложения CRM также могут хранить контактные данные в этом столбце. Сюда могут входить такие сведения, как дата, когда с заказчиком связывались, и записи разговора.

Это типизированный xml-столбец. Используемые им схемы см. на веб-узле Майкрософт. Этот столбец использует следующие схемы:

  • схема AdventureWorks ContactInfo;
  • схема AdventureWorks ContactRecord;
  • схема AdventureWorks ContactRecord.

Образец экземпляра XML, хранящегося в данном столбце

Ниже приведен образец 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>

Запустите следующий запрос, чтобы получить больше экземпляров.

select AdditionalContactInfo
from   Person.Contact

См. также

Основные понятия

Образцы приложений XML

Справка и поддержка

Получение помощи по SQL Server 2005