Метод modify(), Сторінка 5

Метод modify()

Метод modify() дозволяє змінювати значення безпосередньо у XML-документі.

Так само, як і інші методи, він вимагає виразу XPath, щоб зрозуміти, яке значення потрібно змінити. Однак, на відміну від інших методів, modify() працює з оператором UPDATE (і не працює з оператором SELECT). Також, modify() може працювати лише з одним значенням за один раз. У математиці та програмуванні це називається одноелементною безліччю.

Оскільки не існує обмеження на кількість елементів, що містяться всередині іншого елемента, вираз XPath може повертати багато дочірніх елементів. Наприклад, якщо є такий документ XML:

вираз XPath /week/day повертає три елементи, які є одноелементним безліччю:

Однак, якщо замінити вираз XPath на (/week/day)[1], то буде повернено лише один елемент Monday.

Спробуємо одержати назву першого лейбла альбому "OK Computer" гурту "Radiohead".

Метод modify() має єдину мету зміну значень у XML-документі, що є корисною можливістю. Уявіть, що XML-документ вже імпортований на Мова структурованих запитів) — універсальна комп'ютерна мова, яка використовується для створення, модифікації та керування даними в реляційних базах даних. SQL Server, і виявилася помилка або потрібно оновити лише одне значення. Щоб не завантажувати вже виправлений XML-документ, можна просто використовувати метод modify() і змінити необхідні значення безпосередньо в збереженому XML-документі на SQL Server.

У наступному прикладі ми поміняємо місцями назви лейблів альбому "OK Computer" гурту "Radiohead". Перший лейбл має бути замінений на "Capitol", а другий – на"Parlophone".

Метод modify() може бути використаний у пропозиції SET оператора UPDATE по відношенню до змінної або стовпця типу даних XML.

Відмінно – виправлений запит відпрацював коректно, що підтверджується повідомленнями:

(1 row(s) affected)

(1 row(s) affected)

Тепер повернемося до вихідного запиту (з використанням оператора SELECT) і виконаємо його, щоб перевірити, що назви лейблів було оновлено коректно.

Це завдання можна вирішити інакше. Можна поміняти місцями елементи "label" без зміни значень. Просто вставимо копію першого лейбла на кінець списку лейблів.

Після чого видалимо перший лейбл.

Щоб переконатися, що лейбли помінялися місцями коректно, виконаємо наступний запит:

Тепер спробуємо відзначити пісню "Perfect Crime" з альбому "Use Your Illusion I" гурту Guns N' Roses, як популярну. Для цього додамо до XML-документа у відповідний елемент атрибут єПопуляр зі значенням 1.

Як ще один приклад додамо інформацію про дату випуску та дату запису пісні "Estranged" з альбому "Use Your Illusion II" гурту Guns N' Roses. Зверніть увагу, що в даному прикладі елемент додається відразу два атрибути.