0

1990 年から 2010 年までの各年に 1 つずつ、約 20 のアクセス データベースがあります。各データベースにはほぼ同じテーブルがありますが、それらのテーブル内のデータは一意です。(独自のテーブルがいくつかありますが、それほど重要ではありません。)

Access に SQL Server Migration Assistant を使用していますが、これまでのところ、1 つの Access データベースを 1 つの SQL データベースに移行する方法しかわかりません。次のいずれかが可能ですか?

  1. ターゲット データベースに既に存在するテーブルを上書きするのではなく、追加しながら、SSMA を使用して各データベースを SQL サーバーにインポートする
  2. SQL を使用して 20 のデータベースをマージし (それぞれをインポートした後)、同様のテーブルを一緒に追加します。

各データベースには数百のテーブルがあるため、手動による解決策は避けようとしています。

ありがとうございました!

4

3 に答える 3

1

データ構造が各 DB で同一であることがわかっている場合、各 DB でsp_msforeachtable同じ名前を持っている限り、複雑な動的 SQL を実行して各テーブルをマージできる可能性があります。

私は次のようなことを考えています:

DECLARE @SQL Varchar(max)

SET @SQL ='
SELECT *
INTO MergedDb.?
FROM DB1.?
UNION ALL
SELECT *
FROM DB2.?
UNION ALL
SELECT *
FROM DB3.?
...'

exec sp_MSforeachtable @SQL

これはデータ型の競合を適切に処理しません。ID 値がある場合、これはまったく機能しません。

于 2011-03-15T20:00:38.743 に答える
1

グローバルデータベースの適切な正規化された設計を行います。次に、20 個の MDB を 20 個の SQL データベースにインポートし、手動またはスクリプト、またはその両方を組み合わせて統合します。手動の方が早いと思います。

于 2011-03-15T20:01:13.273 に答える
1

各データベースを手動で行う必要がありますが、SQL サーバーのデータ インポート ウィザードを使用してみることができます。

于 2011-03-15T19:54:39.710 に答える