※ ChatGPTを利用し、要約された質問です(原文:SSIS 変数の値をSQL実行タスクSQLStatementで利用する方法)
SSIS変数を利用してSQL実行タスクで動的なテーブル名を指定する方法
このQ&Aのポイント
SSISの変数を利用してSQL実行タスクのSQLStatementで動的なテーブル名を指定する方法について教えてください。
具体的には、データを取り込むために一時テーブルを作成し、そのテーブルを利用してデータを取り込んだ後に削除する処理を実装する際に、変数を使用してテーブル名を動的に指定したいです。
現在、SQL実行タスクエディタのSQLStatementで変数を呼び出す方法が分からず困っています。具体的な方法を教えていただけますか?
SSIS 変数の値をSQL実行タスクSQLStatementで利用する方法
初めまして!
SSISの変数利用について 教えて頂きたいので よろしくお願いいたします。
SSISの変数に入った値をSQL実行タスクの SQLStatementで利用することは
できませんでしょうか?
具体的に何をやりたいかと言いますと
データを取り込む為に一時テーブルを使います。
SQL実行タスクで一時テーブルを作成して、
データを取り込み、処理後に一時テーブルを削除します。
素人考えで、もしほぼ同時にパッケージが実行された場合に
一時テーブルの名前がカブっていると不具合の元にならないかと思いました。
そこで、変数の値でテーブル名を動的につけられればと思ったのですが、
変数に入れた値を、
色々調べてみたのですが SQL実行タスクエディタのSQLStatementでどう呼び出せばよいのか分かりません。
例えば、以下のような文で##test_table の部分を変数で指定することはできないのでしょうか?
CREATE TABLE ##test_table(
[CD] VARCHAR(10),
[NAME] VARCHAR(20)
)
GO
お手数ですが、ぜひ教えてください。
SSISを始めたばかりで 考え方自体がおかしいのかも知れません・・・。
その場合は本当に申し訳ありません
どうぞよろしくお願いいたします!
補足
早速ご丁寧な回答、ほんとうに本当にありがとうございます!! 試してみましたところ、ばっちり変数の値で一時テーブルを作ることができました! その後、ファイルを取り込むOLEDB変換先の変数での指定にはまりましたが、 カスタムプロパティの ACCESSMODEをVariableからOpenRowsetとし、 OpenRowsetVariableに変数を指定して、取り込みに成功しました!! 勉強が足りなくて、検証に時間がかかってしまい、お礼が遅くなってしまってすみませんでした。 本当に助かりました。 お聞きしなかったら、いつまでもハマっていたと思います。 でも、教えていただいた通り、 ローカルの一時テーブルで作成するほうがずっとスマートな気がします。 こちらも試してみたら、思い通りに動きました! 実は SSISはタスク間でやり取りするからグローバルでなければ駄目なのかと 思い込んでいました。。。 ホントに理解できてなくてお恥ずかしいです。 やりたい事を効率的に出来るようになるには まだまだだと思いますが、 頑張りますっ 本当にありがとうございました!