私はこのスレッドを読みました: SSIS : テーブル名を動的に渡します。これはまさに私が達成しようとしていることです。文字列変数を作成するところまで来ました。
ただし、OLEdb ソース エディターで、変数から SQL コマンドを使用することを選択すると、プレビューで次のエラー プロンプトが表示されました。
HRESULT からの例外: データ フロー タスクでの 0xC0202009 エラー [OLE DB ソース [37]]: SSIS エラー コード DTS_E_OLEDBERROR。OLE DB エラーが発生しました。エラー コード: 0x80040E14。OLE DB レコードが利用可能です。ソース: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E14 説明: "ステートメントを準備できませんでした。". OLE DB レコードが利用可能です。ソース: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E14 説明: "テーブル変数 "@" を宣言する必要があります。
ここで何が問題になる可能性があるかについての助けに感謝します。
以下は、私が設定したコンポーネントです。
SQL タスクの実行:
SELECT name from sys.tables WHERE name like'%$Company Information'Order by name 結果セット: Variable Name = User::IndivTableName; 結果名 = 0; データ型=オブジェクト
For Each ループ コンテナー:
列挙子: Foreach ADO 列挙子
ADO オブジェクト ソース変数: User::IndivTableName
列挙モード: 最初のテーブルの行
(これは必要ですか?) 変数のマッピング: Variable = User::IndivTable; インデックス=0; データ型 = オブジェクト
文字列変数:
変数名: ユーザー::会社情報
式: "select [name],[address],[address 2],[city],[phone no_],[fax no_], [VAT Registration no_],[registration no_],[business type] from " + " @[ユーザー::IndivTableName] "
評価値: [名前]、[住所]、[住所 2]、[市区町村]、[電話番号_]、[ファックス番号]、[VAT 登録番号]、[登録番号_]、[業種] を @[ユーザー] から選択::個別テーブル名]
データ ソース エディタ:
データ アクセス モード: 変数からの SQL コマンド
変数名: ユーザー::会社情報
変数値: select [name],[address],[address 2],[city],[phone no_],[fax no_], [VAT Registration no_],[registration no_],[business type] from @[User ::個別テーブル名]