Реферат: Использование 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
|