次の方法で共有


XML 列 Contact.AdditionalContactInfo について

Person テーブルには、名前、電話番号、電子メール アドレスなど、顧客の一般的な連絡先情報が格納されています。また、このテーブルには AdditionalContactInfo という名前の xml 型の列があります。

1 人の顧客の電話、携帯電話、およびポケットベルの番号が、それぞれ 1 つとは限りません。テーブルのデザイン時には、追加の連絡先の数がわからないこともあり、追加の連絡先情報を格納するのに必要な列数がわかりません。追加の連絡先情報を格納するための列を複数作成して、それらの列に NULL 値を格納する代わりに、顧客ごとの追加の連絡先情報を含む XML ドキュメントを格納する XML 型の列を 1 つ作成することができます。

AdventureWorks2008R2 データベースの場合、このような XML 型の列として AdditionalContactInfo という名前の列があります。この追加の連絡先情報は、他のアプリケーションと共有することができます。たとえば、この情報は、顧客間関係管理 (CRM: Customer Relations Management) アプリケーションで役立つことがあります。

CRM アプリケーションでも、この列に連絡先情報を格納することができます。この列には、顧客から連絡があった日やその日のやり取りに関する情報も格納できます。

これは、型指定された xml 型の列です。この列に使用されているスキーマは、この Microsoft Web サイトで確認できます。この列では、次のスキーマが使用されます。

  • ContactInfo スキーマ

  • ContactRecord スキーマ

  • ContactTypes スキーマ

この列に格納されているサンプルの 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>

その他の XML インスタンスを参照するには、次のクエリを実行します。

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