Приклади масової завантаження xml (sqlxml 4

Виконайте наведений вище код VBScript. При масової завантаженні XML-дані завантажуються в таблиці Cust і CustOrder.

Еквівалентна схема XDR:

Цей приклад показує, як зв'язок M: N, зазначена у схемі зіставлення, використовується для масової XML-завантаження даних, що представляють зв'язок M: N.

Як приклад розглянемо наступну схему XSD.

Схема вказує елемент з дочірнім елементом . елемент зіставляється з таблицею Ord, а елемент - з таблицею Product. Цепочечная зв'язок, певна для елемента . вказує зв'язок M: N, представлену таблицею OrderDetail (в замовлення може входити безліч продуктів, а продукт може входити в безліч замовлень).

При масової завантаженні XML-документа з цією схемою записи додаються до таблиць Ord, Product і OrderDetail.

Перевірка робочого зразка

Створіть три таблиці.

У цьому прикладі масової завантаження XML властивість KeepIdentity моделі об'єктів BulkLoad має значення False. Тому SQL Server формує значення ідентифікаторів для стовпців ProductID і OrderID відповідно (пропускаються будь-які значення, зазначені в документах для масової завантаження).

В цьому випадку масове завантаження XML ідентифікує зв'язок «первинний-зовнішній ключ» між таблицями. Спочатку масове завантаження вставляє записи в таблиці з первинним ключем, а потім поширює значення ідентифікаторів, сформовані SQL Server на таблиці з зовнішніми ключовими стовпцями. У наступному прикладі масове завантаження XML вставляє дані в таблиці в наступному порядку.


Щоб поширити на зовнішні ключі значення ідентифікаторів, сформовані в таблицях Products і Orders, логіка обробки вимагає від масової завантаження XML відстеження цих значень для подальшої вставки в таблицю OrderDetails. Для цього масове завантаження XML створює проміжні таблиці, заповнює ці таблиці даними і згодом видаляє їх.

Перевірка робочого зразка

Створіть наступні таблиці.

Якщо схема зіставлення задає стовпець типу даних xml за допомогою замітки sql: datatype = "xml". то масове завантаження XML може копіювати дочірні елементи XML сопоставленного поля з вихідного документа в цьому стовпці.

Розглянемо наступну схему XSD, яка зіставляє уявлення таблиці Production.ProductModel в зразку бази даних AdventureWorks. У цій таблиці поле CatalogDescription типу даних xml зіставляється з елементом за допомогою нотаток sql: field і sql: datatype = "xml".

Перевірка робочого зразка

Перевірте, що встановлений зразок бази даних AdventureWorks.