2012-04-11 10 views
1

おはようございます。アクセスDBからSQL Serverへのテーブルのコピー

AccessからSQLにテーブルをコピーする必要があります。ソースのテーブル名は日々変化します。 私はこの投稿への解決策に示す手順に従ってきたHow do I programmatically get the list of MS Access tables within an SSIS package?

問題はこれです:

私は変数名を変更し、そのポストに記載された問題は私に非常に似ているので、それがすべてです。 手順を踏んで、国を自分のAccessデータベースのテーブル名に変更しました.CITYと言います。問題は、プロセスがAccessのテーブルをループするときです。SQLのテーブルにコピーされるデータは常に同じです。 CITYに格納されているデータはテーブルを変更していないようですが、常にOLE DBソースに提供されているテーブルを使用しています(スクリーンショット14#のように変数 'SelectQuery'に指定されたテーブル名)

SQL内のすべてのテーブルを作成しますが、それらはすべて同じ情報で埋められています。同じテーブルからの情報(変数にその名前が記載されているもの)

ありがとう、アドバイスはありますか?

答えて

1

リンクされたソリューションを読むことから、間違っているか、1ステップが欠落しているように見えます。今、スクリーンショット#14は '変数からのSQLコマンド'を指定し、変数ソースとして 'SelectQuery'を指定します。 SelectQueryが更新された場所がわかりません。

解決方法1: OLE DBソースへの「テーブル名またはビュー名の変数」を設定し、(foreachのコンテナによって各反復更新される)テーブル名に問題の変数

ソリューションを設定します2: SelectQueryを式駆動型変数に変更します。つまり、"select * from " + @[User:TableName]

+0

それはGeoffでした。 –

+0

@シヴァ - 心配する必要はありません。 – Geoff

0

あなたは、その例のテーブル名がExcelのシート名と一致する必要があることを認識しましたか?だから、おそらくアクセス時にそういったことをしなければならないだろう。

また、詳細情報を投稿してください。あなたのテーブル変数の値が更新されていないようです。それがどうあるべきか教えてください。

+0

はい、Accessには名前付き変数(この例ではCityを使用しています)が存在します。 (データフローのエラーで停止しない場合)。変数(変数に保持されている)の名前が更新されています。OK。私はSQLサーバーのすべての新しいテーブルを見て確認します。 TableNameの変数が動作していることを意味するテーブルが作成されます。問題は、これらのテーブルを満たす情報です。これは常に同じで、使用される最初のテーブル(SelectQuery変数に記述されているもの)に含まれるデータです。 –

+0

もっと正確になるようにしてください。 私はAccessデータベースに格納されているすべてのテーブル名を取得します。そうするために私はいくつかのC#コードを使用します。私はそれをAccessTablesというObject変数に格納します。 すべてのテーブルに対して、プロセスはFor Eachループに入ります。 その中に、SQL DBにテーブルのレプリカを作成する必要があります。 すべて、テーブル名、および内容をコピーします。 これを行うために、 'SELECT * FROM CITY'という文を含む変数を作成しました(リンクでは、CITYは国に置き換えられます) したがって、データフローのソースで、 –

+0

パート2 ....テーブルが作成され、名前はすべてそこにあります。問題は内容です。すべてのテーブルは、SELECT変数で使用されるテーブルである最初に使用されたテーブルで満たされます。 ループ変数が機能し、テーブルが作成されます。しかし、問題は、私が信じているのは、データフローのソースで、常に同じテーブル( "select * from [Variable Table Name]")をコピーすることです。 –

関連する問題