2009-07-11 10 views
0

私は、ADO.NETプロバイダのスキーマを使用してSQL Server 2008にデータをインポートする方法を理解しようとしています。データベースのインポートウィザードを使用して、任意のADO.NETプロバイダ(この場合はVistaDBを使用しています)を選択できます。しかし、実際のインポートに行くと、1つ以上のテーブルからデータをコピーするとグレー表示されます。クエリは記述できます。データベーススキーマとデータ全体をコピーしたいと思います。SQL Server 2008では、ADO.NETプロバイダからスキーマとデータをインポートできますか?

オンラインヘルプでは、Microsoftのプロバイダのみがこれをデフォルトで使用でき、サードパーティのカスタム記述子を作成する必要があるという参考文献が見つかりました。ヘルプは、ディレクトリを表示するために、\ Program Files \ Microsoft SQL Server \ 100 \ DTS \ ProviderDescriptorsを指します。 XMLファイルを見ると、すべてのスキーマと定義のロードに対してSQLクエリが必要なようです。すべてのADO.NETプロバイダが実装しなければならないGetSchema()呼び出しを通じて、それらをロードできないのはなぜですか?それは私には意味をなさない。

次に、ADO.NETプロバイダからSQL ServerのDTSパッケージ内のすべてのスキーマを取得できることがわかりました。私が書いた最後のDTSパッケージは約10年前です。 2008年版を見ると、私は完全に失われています。 DTSパッケージを使用してデータベーススキーマ全体をロードし、SQL Serverにインポートする方法を教えてください。

または、私はこれを考えすぎていますし、簡単な方法がありますか?

答えて

0

私は最終的に、SQL Serverツールを使用してVistaDBからSQL Serverに移行するために、この件に関するブログ記事を2つ作成しました。非直感的で、SSISを使用する必要がありますが、それ以外の方法はありません。

Using SQL Server Import and Export Wizard with VistaDB - ほとんどの場合、既定のウィザードの使用に関する情報ですが、お勧めしません。それは一度に1つのテーブルだけを行い、セットアップには苦労します。また、これをSQL Server Standard以上のもので繰り返し実行することはできません(明示的には実行できません)。

Using SQL Server Integration Services to Migrate VistaDB 4 Data - この記事のほとんどは、どのADO.NETプロバイダにも当てはまります。私は、mySQLの専門家、DB2などの情報の一部を見つけました。私はVistaDBユーザーのためにすべてをまとめました。

興味深い情報は、SSISを使用して11台のデータベースの移行を構築するのに3.5時間かかったことです。このプロセスは非常に苦痛で、多くのクリックステップがあります(通常の編集ではなく高度な編集を使用してください)。 SSISパッケージのセットアップが完了すると、実行には約2分かかりました。それから私は(理論的に)私が望むたびにそれを再実行することができました。しかし私の場合、データと構造を一度に移動したいだけでした。セットアップに多くの時間がかかります。

次に、私はすべてのテーブルを歩き、sqlcmdから実行できるSQL文を吐き出すための簡単なアプリケーションを作成しました。そのアプリを書くのに約1.5時間かかって、約10秒で実行されました。しかし、sqlcmdはこれらのステートメントを一度に1つずつ実行するのに約1時間かかりました。

私はデータ移行ウィザードの逆を作成することがあります(SQL ServerからVistaDBにコピーします)。わずか7回のクリックでデータベースを移行でき、実行には数秒かかります。すべてのデータアクセスは、ADO.NETプロバイダへのGetSchema()呼び出しを介して行われます。

関連する問題