Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Янин В.Л. "Новгородские акты XII-XV Хронологический комментарий" (История)

Майринк Г. "Белый доминиканец " (Художественная литература)

Хусаинов А. "Голоса вещей. Альманах том 2" (Художественная литература)

Петров Г.И. "Отлучение Льва Толстого " (Художественная литература)

Хусаинов А. "Голоса вещей. Альманах том 1 " (Художественная литература)
Реклама

Microsoft SQL server. Реализация и обслуживание Учебный курс - Microsoft press

Microsoft press Microsoft SQL server. Реализация и обслуживание Учебный курс — Microsoft Press, 2007. — 766 c.
Предыдущая << 1 .. 120 121 122 123 124 125 < 126 > 127 128 129 130 131 132 .. 343 >> Следующая

</Department>
</Departments>
Неявное сопоставление в OPENXML
OPENXML обеспечивает неявное сопоставление XML, при котором SQL Server пытается автоматически сопоставить XML-элементы и атрибуты столбцам. Это сопоставление основывается на двух моментах:
I Значение флага, задающее атрибутивную модель сопоставления, сопоставление с использованием элементов или их сочетание. В табл. 8-6 приводится описание основных значений параметра flags.
Табл. 8-6. Значения параметра flags для неявного сопоставления в OPENXML
Значение Описание
0 Используется атрибутивная модель сопоставления. Каждый ХМЕ-атрибут
будет преобразован в столбец
260 Управление XML-данными
Глава 8
Табл. 8-6. (окончание)
Значение Описание
1 Используется атрибутивная модель сопоставления. Каждый ХМЕ-атрибут будет преобразован в столбец. Для столбцов, которые еще не были обработаны, применяется сопоставление с использованием элементов
2 Применяется сопоставление с использованием элементов. Каждый ХМЬ-элемент будет преобразован в столбец
я Имена элементов в ХМЕ-структуре (чувствительные к регистру), которые должны
совпадать с именами столбцов, как это объявлено в схеме возвращаемой таблицы.
В следующем примере кода показано, как правильно применять OPENXML с неявным сопоставлением:
DECLARE @h INT
EXEC sp_xml_preparedocument @h OUTPUT, @X SELECT *
FROM 0PENXML( @h , ’/Departments/Department/Employees/Employee’, 3)
WITH ( id INT,
YearsInRole int,
StartDate datetime)
WHERE YearsInRole >= 8
EXEC sp_xml_removedocument @h GO
Переменная @h будет содержать дескриптор проанализированной XML-структуры. Переменная @Х содержит XML-стуктуру и имеет тип данных XML. Выражение OPENXML фильтрует XML-структуру, исполняя указанный запрос ХРАТН. Результирующие XML-узлы преобразуются в табличную структуру, объявленную в предложении WITH. На рис. 8-3 показан результат этого запроса.
Ы І
1997-12-12 00 00 00 000
9 8 1998-02-06 00 00 00 000
11 8 1998-02-24 00 00 00 000
12 8 1998-03-03 00 00 00 000
5 8 1998-01-11 00 00 00 000
2 9 1997-02-26 00 00 00 000
1 10 1996-07-31 00 00 00 000
7 8 1998-01-26 00 00 00 000
8 8 1998-02-06 00 00 00 000
10 8 1998-02-07 00 00 00 000
13 8 1998-03-05 00 00 00 000
14 8 1998-03-11 00 00 00 000
15 8 1998-03-23 00 00 00 000
16 8 1998-03-30 00 00 00 000
17 8 1998-04-11 00 00 00 000
18 8 1998-04-18 00 00 00 000
19 8 1998-04-29 00 00 00 000
Рис. 8-3. Результат выполнения примера запроса ОРЕІЧХМЬ с неявным сопоставлением
Занятие 5
Преобразование между XML-данными и реляционными данными
261
Явное сопоставление в OPENXML
Использование синтаксиса явного сопоставления XML позволяет разработчикам вручную задавать отношения между ХМL-структурой и схемой возвращаемой таблицы. Вместо использования параметра flags и имен элементов нужно задать модель сопоставления, явно определяющую сопоставление каждого столбца XML-данным, как показано в следующем примере кода:
DECLARE @h INT
EXEC sp_xml_preparedocument @h OUTPUT, @X SELECT *
FROM 0PENXML( @h , ’/Departments/Department/Employees/Employee')
WITH (
ID INT ’../@id',
StartDate datetime,
[Name] nvarchar(max) /@name’,
YearsInRole int)
WHERE YearsInRole = 8
EXEC sp_xml_removedocument @h GO
Обратите внимание, что объявления столбцов в предложении WITH явно указывают, как извлекать значения из данных, содержащихся в XML-документе. Столбец ID сопоставлен атрибуту ID, а столбец Name — атрибуту пате элемента Department. На рис. 8-4 показан результат этого запроса.
Ш ШШ .....................\%мт.................
1998-02-06 00 00 00 000 Engineering 8
1998-02-24 00 00 00 000 Engineering 8
1998-03-03 00 00 00 000 Engineering 8
1998-01-11 00 00 00 000 Tool Design 8
1998-01-26 00 00 00 000 Production 8
1998-02-06 00 00 00 000 Production 8
1998-02-07 00 00 00 000 Production 8
1998-03-05 00 00 00 000 Production 8
1998-03-11 00 00 00 000 Production 8
1998-03-23 00 00 00 000 Production 8
1998-03-30 00 00 00 000 Production 8
1998 04-11 00 00 00 000 Production 8
1998-04-18 00 00 00 000 Production 8
1998-04-29 00 00 00 000 Production 8
Рис. 8-4. Результат выполнения примера запроса ОРЕІЧХМ^ с явным сопоставлением
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ Краевая таблица
Если в выражении OPENXML не указано предложение WITH, SQL Server возвращает внутреннее реляционное представление XML-данных, называемое краевой таблицей (edge table). К краевой таблице можно выполнять запросы для получения информации о структуре XML-данных. Подробнее о структуре краевой таблицы можно узнать из раздела «OPENXML (Transact-SQL)» Электронной документации по SQL Server 2005.
262 Управление XML-данными
Глава 8
Разбиение XML с использованием метода nodesQ типа данных XML
После добавления в SQL Server 2005 типа данных XML Microsoft пришлось решать еще одну задачу: как разбить XML-данные, содержащиеся в экземпляре типа данных XML в таблично-реляционный формат. Вместо преобразования XML-данных в строковый тип и дорогостоящей загрузки всей XML-структуры в память с использованием OPENXML тип данных XML поддерживает собственный механизм разбиения: метод nodes().
Предыдущая << 1 .. 120 121 122 123 124 125 < 126 > 127 128 129 130 131 132 .. 343 >> Следующая