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

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

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

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

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

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

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

Изучив материал этого занятия, вы сможете:
/ Выбирать между использованием типа данных XML и SQLXML для изменения XML-данных.
/ Использовать метод modifyQ типа данных XML для вставки, изменения и удаления XML-содержимого и элементов ХМL-структуры.
/ Использовать пакеты обновлений SQLXML для формирования инструкций Transact-SQL INSERT, UPDATE и DELETE без написания кода Transact-SQL.
Продолжительность занятия - около 30 минут.
248 Управление XML-данными
Глава 8
История из жизни
Адольфо Вирник (Adolfo Wiernik)
В предыдущих версиях SQL Server не поддерживалось обновление XML-данных на уровне узла. Единственным способом были пакеты обновлений SQLXML, которые рассматриваются в этом занятии. Но пакеты обновлений позволяют модифицировать реляционные данные, представленные как XML-данные. Пакеты обновлений обеспечивают возможность изменения данных, которые представлены как XML, но не хранятся как XML. Также можно было применить поставщик набора строк OPENXML, преобразовать XML-структуру в табличный формат, обновить ее, а затем обратно преобразовать в XML. Разумеется, это приводило к значительной загрузке процессора и памяти. Последним и наиболее простым решением было обновление XML-данных с помощью таких технологий среднего уровня, как DOM (Document Object Model) или SAX (Simple API for XML), но это означало, что в базе данных не регистрировались внесенные изменения.
В SQL Server 2005 для этого есть другой, более простой способ. Данные можно хранить в новом типе данных XML и использовать метод modify() для вставки, удаления или обновления XML-данных. И самое замечательное то, что метод modifyQ позволяет изменять как значения в XML-узлах, так и XML-структуру.
Изменение значений XML и XML-структуры
В зависимости от способа хранения XML-данных SQL Server 2005 поддерживает две технологии их изменения:
? Если данные хранятся как тип данных XML, используйте метод modifyQ для добавления, удаления или обновления XML-данных. Метод modifyQ поддерживает изменение как значений в XML-узлах, так и структуры фрагмента XML.
? Если данные хранятся в реляционной структуре, но обрабатываются как XML с помощью предложений FORXML или аннотированных XSD-схем, используйте пакеты обновлений SQLXML, поддерживающие изменение значений XML в XML-узлах. Поскольку данные не хранятся внутренне как XML, возможность изменения XML-структуры отсутствует.
Использование метода modifyf) в типе данных XML
Язык XQUERY не содержит ключевых слов для манипулирования данными. Но Microsoft расширила возможности XQUERY в SQL Server 2005, включив набор инструкций, которые позволяют добавлять, обновлять и удалять XML-данные (XML DML). Метод modifyQ типа данных XML принимает единственный входной параметр, который должен быть корректным выражением XML DML, и исполняет его над фрагментом XML, который в нем указан.
Язык XML DML в SQL Server 2005 поддерживает следующие ключевые слова:
? insert
Служит для добавления одного или нескольких узлов как дочерних для указанного узла или на одном уровне с ним. Конструкция insert состоит из двух выражений и оператора. Первое выражение может вернуть один узел или набор узлов. Второе должно вернуть только один узел. Оба выражения могут быть сконструированы с помощью постоянных значений или выражения XQUERY. Для соединения этих выражений используют один из следующих операторов:
Занятие 4
Изменение XML-данных 249
? into
Указывает, что узлы должны быть добавлены как дочерние для узла, определяемого вторым выражением. Если узел уже имеет дочерние узлы, в выражении XML DML может быть указано, что новые узлы добавляются в начало (as first into) или в конец (as last into — значение по умолчанию).
? after
Указывает, что узлы должны быть вставлены после узла, определяемого вторым выражением, и на одном уровне с ним.
? before
Указывает, что узлы должны быть вставлены перед узлом, определяемым вторым выражением, и на одном уровне с ним.
? replace value of
Указывает SQL Server 2005 обновить значение заданного узла. Конструкция replace value of состоит из двух выражений. Первое выражение должно быть отдельным узлом. Второе выражение можно сконструировать с помощью постоянных значений или выражения XQUERY, возвращающего набор узлов.
? delete
Указывает SQL Server 2005 удалить один или несколько узлов из XML-структуры. Конструкция delete состоит из одного выражения XQUERY, возвращающего набор узлов, которые должны быть удалены из экземпляра XML.
Метод modifyQ типа данных XML можно вызывать с помощью инструкции SET, используемой отдельно или в составе инструкции UPDATE.
При изменении типизированного экземпляра XML окончательный формат XML должен быть корректным экземпляром того же типа, как он объявлен для коллекции XML-схем. В противном случае возвращается ошибка.
Все примеры в этом занятии основаны на следующем исходном запросе из занятия 2 данной главы:
USE AdventureWorks GO
DECLARE @X XML
SET @X = ( SELECT Department.[DepartmentID] ’Department/@id’
.Department.[Name] 'Department/@name',
(
SELECT History.[EmployeelD] ’Employee/@id'
Предыдущая << 1 .. 115 116 117 118 119 120 < 121 > 122 123 124 125 126 127 .. 343 >> Следующая