Реферат: Использование XML совместно с SQL

0 as parent,

pub_name as 'pubs!1!PubName',

city as 'pubs!1!City',

NULL as 'employee!2!First_Name',

NULL as 'employee!2!Last_Name'

from publishers as pubs

where pub_name like 'Binnet%' or pub_name like 'New Moon%'

union all select 2 as tag, -- второйподзапрос

1 as parent,

pubs.pub_name,

pubs.city,

fname,

lname

from employee as e, publishers as pubs

where (pub_name like 'Binnet%' or pub_name like 'New Moon%')

and pubs.pub_id = e.pub_id

order by 'pubs!1!PubName', 'pubs!1!City',

'employee!2!First_Name', 'employee!2!Last_Name'

for xml explicit

Давайте рассмотрим все по порядку. Сначала выполняется первый подзапрос. Его результат приведен в таблице 1.

tag parent pubs!1!PubName pubs!1!City employee!2!First_Name employee!2!Last_Name
1 0 New Moon Books Boston NULL NULL
1 0 Binnet & Hardley Washington NULL NULL

Таблица 1.

Затем второй (Таблица 2).

tag parent pub_name city fname lname
2 1 Binnet & Hardley Washington Paolo Accorti
2 1 Binnet & Hardley Washington Victoria Ashworth
2 1 Binnet & Hardley Washington Helen Bennett
2 1 Binnet & Hardley Washington Lesley Brown
... ... ... ... ... ...

Таблица 2.

Затем происходит сортировка, и на основе полей tag и parent SQL Server формирует иерархический XML документ.

ПРИМЕЧАНИЕ

Для отладки подобных запросов лучше не указывать оператор FOR XML EXPLICIT. Тогда данные будут представлены в обычной реляционной форме.

На этом мы, пожалуй, закончим рассмотрение оператора FOR XML EXPLICIT – приведение примеров использования всех атрибутов заняло бы слишком много места.

OPENXML

Функция OPENXML является аналогом OPENROWSET, OPENDATASOURCE и OPENQUERY, которые позволяют выполнять запросы из удаленных источников. Вот ее синтаксис:

К-во Просмотров: 537
Бесплатно скачать Реферат: Использование XML совместно с SQL