Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Microsoft SQL Server для профессионалов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

Лабораторная работа 2.3 Применение Data Driven Query Task

Data Driven Query Task в Data Transformation Services (DTS) SQL Server 2000, изменение данных с проверкой условий на внешнем источнике данных

Задание:

Создайте пакет, который бы изменял значения в столбце Heavy_Buyer в таблице Bulk_Customers. При этом должно устанавливаться значение "Y" для тех заказчиков, для которых общая сумма всех заказов в таблице Order Details (произведение Unit Price на Quantity) больше 10000 долларов. Запустите готовый пакет и сохраните его под именем Update_Buyer.

Решение:

1) определяем destination query - запрос на обновление источника. Он может быть таким:

UPDATE bulk_customers 
SET heavy_buyer = 'Y'
WHERE CustomerID = ?

2) создаем таблицу привязок - binding table. Команда на ее создание (ее необходимо выполнить в Query Analyzer или использовать Execute SQL Task аналогично ответу к лабораторной 2.2) может выглядеть так:

     CREATE TABLE [dbo].[bulk_customers_binding] (
     [CustomerID] [nvarchar] (10) NOT NULL)

3) определяем source query - запрос, при помощи которого из источника будут извлекаться нужные нам данные. Он может быть таким:

SELECT     Customers.CustomerID FROM Orders 
INNER JOIN [Order Details] ON Orders.OrderID = [Order Details].OrderID INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID
GROUP BY Customers.CustomerID 
HAVING      (SUM([Order Details].UnitPrice * [Order Details].Quantity) > 10000)

Рекомендация: можно добавить в список возвращаемых столбцов (временно) вычисляемое поле SUM([Order Details].UnitPrice * [Order Details].Quantity), чтобы убедиться, что действительно возвращаются только данные для заказчиков, общая сумма заказов для которых больше 10000.

4) создаем новый пакет DTS и сохраняем его под именем Update_Buyer. Затем нужно создать два соединения OLE DB Provider for SQL Server с базой данных Northwind на локальном сервере (их можно назвать, например, NW1 и NW2) и помещаем в пакет через меню Task задание Data Driven Query Solution. Откроется окно свойств Data Driven Query Solution.

5) на вкладке Source окна свойств Data Driven Query Task переставляем переключатель в положение Source Query и вставляем в окно созданный нами Source Query. Можно нажать на кнопку Preview, чтобы убедиться, что с этим запросом все в порядке.

6) на вкладке Bindings выберите таблицу bulk_customers_binding.

7) на вкладке Transformations откройте свойства единственного преобразования ActiveX Script и замените строку

Main = DTSTransformstat_InsertQuery

на

Main = DTSTransformstat_UpdateQuery

Закройте окно свойств ActiveX Script преобразования с сохранением изменений.

8) на вкладке Queries в списке Query type выберите Update и в окно ниже скопируйте текст созданного нами Destination Query. Нажмите на кнопку Parse/Show Parameters и убедитесь, что столбец Destination CustomerID привязан к Parameter 1. Нажмите на кнопку OK, чтобы закрыть окно свойств Data Driven Query Solution.

9) сохраните пакет и запустите его на выполнение, чтобы убедиться, что он работает без ошибок. Выполните из Query Analyzer запрос

SELECT * FROM bulk_customers 

чтобы убедиться, что значение столбца Heavy_Buyer поменялось для 12 заказчиков.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru