RDBのテーブル削除と件数確認

「ASTERIA WARP」「ASTERIA 3」「ASTERIA On Demand」の
インストール・動作環境・パイプライン機能・フロー機能など全般について

RDBのテーブル削除と件数確認

投稿記事by Mansell » 2010年3月04日(木) 15:00

RDB(SQL_Server2008)のテーブル削除(全件)をする際に、削除した件数を取得したいのですが、うまくできません。

私のやり方が間違っているように思うのですが、良い方法はありますでしょうか?
削除するテーブルはワークテーブルで、主キー・ユニークキーはありません。

①Stert   トランザクション化(はい)
②RDBGet 1件づつ取り出し
③マッパー カウント変数作り、件数をADD
④RDBPut デリート
        (キーが必要なので、日付としました)
        (ユニークでもなんでもありません。Nullじゃない項目だっただけです)
⑤ExcelOutputで変数を出力
⑥End

想像している処理としては、「削除前のテーブル件数を取得 → 全件無条件削除 → 件数をExcelに出力」ができると、処理時間も短縮され、フローも簡潔ではないかと・・・

お知恵を拝借できませんでしょうか!
宜しくお願い致します。
 
Mansell
 
記事: 16
登録日時: 2010年2月24日(水) 16:13

投稿記事by super » 2010年3月05日(金) 12:53

そのやり方だとレコード件数分DELETE文が発行されるので相当無駄な感じです。
その要件なら

・件数取得
RDBGetで「SELECT COUNT(*) FROM TABLE」を発行

・削除
SQLCallで「DELETE FROM TABLE」を発行

で十分だと思います。
super
 
記事: 124
登録日時: 2006年12月19日(火) 12:57

投稿記事by itete » 2010年3月05日(金) 12:55

「削除した件数を取得したい」ということであれば、SQLCallコンポーネントを使用し、
・実行する処理 ・・・・・「任意のSQLを実行」
・SQL文 ・・・・・「DELETE テーブル名」
とすると全件削除されますので、直後にMapperを置けば「処理件数」から削除件数が取得できると思います。
itete
 
記事: 81
登録日時: 2007年1月09日(火) 12:15

投稿記事by Mansell » 2010年3月08日(月) 10:03

ありがとうございます。

そうなんです。こういったことをやりたかったんです!!

こんなに簡単にできるとは・・・
(SQLやDBもよくわからないまま、担当となってしまい困り果てていたところで)

削除した件数が履歴としてわかればいいので、iteteさんのやりかたでできました。
superさんもありがとうございました。
Mansell
 
記事: 16
登録日時: 2010年2月24日(水) 16:13


Return to 聞きたい、知りたい、教えます

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[0人]