2

大きな ( varchar(max)) SQL スクリプトをテーブルに格納しています。SSIS パッケージでスクリプトを実行したいと考えています。

このサイトの他の投稿を見ると、varchar(max)をオブジェクト変数に入れるのは簡単です。しかし、その後、何をすべきか?Execute Sql Task (変数の SQLSourceType) が文字列変数ではなくオブジェクト変数を指定する方法はありますか?

うまくいくアプローチはありますか?

4

1 に答える 1

3

これが私がそれにアプローチする方法です:

  1. 制御フローにデータ フロー タスクを追加する
    • データベースに接続するソース (ADO.NET) を追加します
    • パッケージ レベルのオブジェクト変数を作成します (次のステップ用)。
    • 前の手順で作成した Object 変数にデータを設定する Recordset 変換先を追加します。
  2. 制御フローに戻ります。
    • 「現在の」クエリのパッケージ レベルの文字列変数を作成します (次の手順を参照)。
    • For Each ADO.NET 列挙子を追加する
      • 前のデータ フロー タスクを For Each タスクに接続します。
      • オブジェクト変数をソースとして使用し、列インデックスを SQL とともに文字列変数に格納するように For Each を構成します。
    • For Each タスク内に Execute SQL タスクを追加します。
      • 変数から SQL コマンドを実行するように構成し、現在のクエリを含む文字列変数を選択します

基本的に、テーブルからクエリを収集し、収集されたクエリごとに変数に割り当てます。次に、SQL 実行コマンドがその変数からコマンド テキストを取得できます。

于 2012-08-13T23:36:24.747 に答える