[実行]ボタンをクリックしてパッケージが実行されると、次のように[パッケージ実行の進 行状況]ダゕログが表示されますが、エラーが発生して、データ転送が失敗してしまいます。
「エラー」の行の記述をみると、「CREATE TABLE [SSISdb1].[dbo].[商品]~」とあり、「商 品」テーブルを作成していることが原因でエラーとなっていることを確認できます。
前の STEP で、ウゖザードからデータ転送を実行したときは、「商品」テーブルを作成するこ とができましたが、2 回目以降のパッケージの実行時には、「商品」テーブルが既に存在して しまっているので、エラーが発生してしまうのです。
確認後、[閉じる]ボタンをクリックして、ダゕログを閉じます。
3. [パッケージ実行ユーテゖリテゖ]ダゕログへ戻ったら、[閉じる]ボタンをクリックして 閉じます。
4. 次に、データ転送が失敗していることを Management Studio から念のため確認しておきま しょう。[SSISdb1]データベースの[商品]テーブルを右クリックして[上位 1000 行の 選択]をクリックします。
CREATE TABLE のエラー
3 1
タスクの失敗を表す 2
1
データが新しく追加されていないことから、データ転送が失敗していることを確認できます。
保存したパッケージの編集(Business Intelligence Development Studio)
次に、このパッケージのエラーを解消して、正しくデータ転送が行えるように、パッケージの編集 を行ってみましょう。パッケージの編集には「Business Intelligence Development Studio」
を利用します。
5. Business Intelligence Development Studio を起動するには、次のように[スタート]メニ ューの[すべてのプログラム]から[Microsoft SQL Server 2008]を選択し、[SQL Server Business Intelligence Development Studio]をクリックします。
6. Business Intelligence Development Studio は、Visual Studio 2008 と統合されているの で、次のように Visual Studio 2008 が起動します。
1
2
3
次に、[フゔル]メニューから[新規作成]を選択して[プロジェクト]をクリックし、新 しいプロジェクトを作成します。
7. すると、[新しいプロジェクト]ダゕログが表示されるので、次のように[プロジェクトの 種類]で「ビジネス ンテリジェンス プロジェクト」を、[テンプレート]で「Integration Services プロジェクト」を選択します。
[プロジェクト名]へは「SSISstep2」と入力して、[場所]を「C:\」へ変更し、[OK]ボ タンをクリックします。これにより、SSISstep2 プロジェクトが作成されます。
8. 作成されたプロジェクトには、空のパッケージ(Package.dtsx)が自動作成されているので、
今回は、これを削除します。次のように画面右側の[ソリューション エクスプローラ]で、
「フゔル」メニューの「新規作成」
から「プロジェクト」をクリック 1
1
2
3
4
[SSIS パッケージ]フォルダの配下にある「Package.dtsx」を右クリックして、[削除]
をクリックします。
すると、次のように削除を確認するダゕログが表示されるので、[OK]ボタンをクリックし ます。
9. 次に、前の STEP で作成したパッケージ「商品 Package.dtsx」をプロジェクトへ追加しま す。次のように ソリューション エクスプローラ で[SSIS パッケージ]フォルダを右クリ ックして、[既存のパッケージを追加]をクリックします。
10. すると、[既存のパッケージのコピーを追加]ダゕログが表示されるので、次のように[パ ッケージの場所]で「フゔル システム」を選択し、[パッケージのパス]で[...]ボタンを
1
2
1
1
2
クリックします。
すると、[パッケージの読み込み]ダゕログが表示されるので、「C:\商品 Package.dtsx」
フゔルを選択し、[開く]ボタンをクリックします。[既存のパッケージのコピーを追加]ダ
ゕログへ戻ったら、[OK]ボタンをクリックして閉じます。
11. 次に、追加したパッケージ「商品Package.dtsx」をダブル クリックします。
1
5
2
3
4
↓
追加した「商品Package.dtsx」
をダブル クリック
パッケージのデザン画面 SSIS デザナ
1
2
きるようになります。
12. このデザン画面からは、パッケージを実行することもできるので、次のように[デバッグ]
メニューから[デバッグ開始]をクリックして、パッケージを実行してみます。
パッケージが実行されると、次のように[準備 SQL タスク 1]タスクが赤くなってエラー となり、実行が中断されます(デバッグ モードになります)。
[デバッグ]メニューから[デバッグの停止]をクリックして、デバッグを終了します。
13. 次に、エラーとなったタスクの内容を確認するために、デザン画面で[準備 SQL タスク 1]
をダブル クリックします。
1
エラーとなり、赤く表示 される
1
1
2
これにより、[SQL 実行タスク エデゖタ]ダゕログが表示されるので、[SQLStatement]
プロパテゖをクリックし、値(CREATE TABLE ~)へマウスを乗せて、ポップゕップを表 示すると、SQL ステートメントの内容を確認することができます。表示される SQL ステー トメントは、「CREATE TABLE [SSISdb1].[dbo].[商品]…」となっていて、商品テーブルを 作成するステートメントであることを確認できます。確認後、[OK]ボタンをクリックして、
ダゕログを閉じます。
タスクの無効化
14. この[準備 SQL タスク 1]のエラーを回避するには、このタスクを無効化に設定すればよい ので、次のように[準備 SQL タスク 1]を右クリックして[無効化]をクリックします。
これにより、[準備 SQL タスク 1]が灰色に変わり、このタスクが実行されないようになり ます。
15. 次に、[デバッグ]メニューから[デバッグ開始]をクリックして、パッケージを実行(デバ ッグを開始)します。
SQLStatement プロパテゖの値へ マウスを乗せると、ポップゕップが 表示されて、SQLステートメントの 内容を確認できる
準備 SQL タスク 1を ダブルクリック 1
2
3
↓
1 2 灰色にかわる
↓
すると、無効化した[準備 SQL タスク 1]は実行されずに、[データ フロー タスク 1](デ ータ転送のためのタスク)が ”緑色” に変わって、実行が成功したことを確認できます。
16. [デバッグ]メニューから[デバッグの停止]をクリックしてデバッグを終了します。
17. 次に、もう一度、[デバッグ]メニューから[デバッグ開始]をクリックして、パッケージを 再度実行し、エラーにならないことを確認しておきます。
[デバッグ]メニューから[デバッグの停止]をクリックしてデバッグを終了します。
1
緑色に変わると 成功
↓ 2
1
2
1
緑色に変わると 成功
↓ 2
1
2
取り込んだデータの確認
18. 次に、パッケージの実行で取り込んだデータを確認しておきましょう。 Management Studio から、次のように SSISdb1 データベース内の「商品」テーブルを右クリックして[上位 1000 行の選択]をクリックします。
パッケージを実行した回数分だけ、データが追加されていることを確認できます。
このように、CREATE TABLE ステートメントが実行されないように変更すれば、データ転送 を何度も実行できるようになります。ただし、このままでは、パッケージが実行されるたびに データが上書きされずにどんどん追加されていってしまいます。
データを削除してからデータ転送を行う(上書きする)
パッケージを実行するたびにデータが追加されていくのを防ぎ、新しいデータで上書きされるよう にするには、次のようにパッケージを編集します
19. まずは、無効化していた[準備 SQL タスク 1]を有効に戻します。[準備 SQL タスク 1]
を右クリックして[有効化]をクリックします。
1 ウゖザードで実行した
結果(1回目の転送)
パッケージを実行した 結果(2回目の転送)
パッケージを実行した 結果(3回目の転送)
2
3
4
1
20. 次に、[準備 SQL タスク 1]の SQL ステートメントを変更します。[準備 SQL タスク 1]
をダブル クリックして[SQL 実行タスク エデゖタ]ダゕログを表示し、[SQLStatement]
プロパテゖの「...」ボタンをクリックします。
すると、[SQL クエリの入力]ダゕログが表示されるので、SQL ステートメントを次のよ うに変更します。
TRUNCATE TABLE 商品 go
TRUNCATE TABLE ステートメントは、指定したテーブルのデータをすべて削除する効果が あるので、この記述によって、商品テーブルのデータをすべて削除できるようになります。
ステートメントの記述後、[OK]ボタンをクリックしてダゕログを閉じます。
21. 次に、[デバッグ]メニューから[デバッグ開始]をクリックして、パッケージを実行し、結 果を確認します。
「SQLStatement」
プロパテゖの「...」
ボタンをクリック 準備 SQL タスク 1を
ダブルクリック
1
2
↓
2 商品テーブルのデータ を全削除するためのス テートメントを記述 1
今度は、2 つのタスクが緑色に変わって、パッケージの実行が成功したことを確認できます。
22. [デバッグ]メニューから[デバッグの停止]をクリックして、デバッグを終了します。
データが上書きされていることの確認
23. パッケージで取り込んだデータを確認するために、Management Studio から「商品」テー ブルを右クリックして[上位 1000 行の選択]をクリックします。
テーブルのデータは、すべて削除されてから、データ転送が行われているので、データが上書 きされていることを確認できます。
このように、Business Intelligence Development Studio(SSIS デザナ)を利用すると、
1
↓ 2
1
2
1
3
2
単純なデータ転送だけでなく、任意の SQL ステートメントを実行できるようになります。ま た、SSIS デザナでは、”データの変換” を追加することもできるので、これについては STEP 3 で説明します。
パッケージの保存
次に、編集したパッケージを保存しておきます。
24. パッケージとプロジェクト全体を保存するには、次のように[フゔル]メニューから[すべ てを保存]をクリックします。
パッケージ実行ユーテゖリテゖからの実行
次に、Business Intelligence Development Studio で編集したパッケージをエクスプローらから 実行してみます。
25. Business Intelligence Development Studio で作成・編集したパッケージは、次のようにプ ロジェクト(C:\SSISstep2\SSISstep2)フォルダの下の「bin」フォルダへ格納されてい ます。
1
2
ダブル クリック 1
2