3

すべてのビジネスデータを保持するAccess2003データベースがあります。このアクセスデータベースは、日中数時間ごとに更新されます。

現在、アクセスデータベースのデータを使用する必要のあるWebサイトを作成しています。このWebサイト(当面)には読み取り専用機能のみがあります。つまり、データの転送は一方向でのみ必要です([アクセス]-> [SQL])。

私は、SQLサーバーへのアクセスからプログラムでこのデータ移行を実行する方法があることを想像しています。誰かが私が読むことができる何かへのリンクを持っていますか?

この方法が奇妙に聞こえ、これを行う別の方法(またはデータが双方向に移動できる状況([アクセス]-> [SQL]、[SQL]-> [アクセス])を提案したい場合は、まったく問題ありません。

同社は、ビジネス機能のためにAccess2003を引き続き使用する予定です。それを回避する方法はありません。しかし、SQL Serverの上に(読み取り専用の)Webサイトを構築したいと思います。

4

3 に答える 3

2

最初のデータ移行を実行し、SQL Serverを自動的に設定するには、SQL ServerMigrationAssistantを使用します。私が考えることができる唯一の変更すべきことは、それを持っている列のIdentityプロパティをオフにすることです-以下で説明します(MS AccessはIdentity自動番号を呼び出します)。テーブルをロードしたら、作成したデータベース(およびテーブル)へのdsnless接続を設定できます。

リンクしたばかりの方法は使用していませんが、SQLServer認証を使用してデータベースに接続できると思います。この方法を使用する利点は、開発とテストのために接続しているSQLServerインスタンスやデータベースを簡単に変更できることです。

より良い自動化された方法があるかもしれませんが、Accessテーブルの主キーからSQL Serverテーブルへの左結合を行ういくつかの挿入クエリを作成でき、WHERESQLServerPrimaryKeyを指定する句をnullにする必要があります。これが、新しいデータを挿入できるように、SQLServerテーブルのIdentityプロパティをオフにする必要がある理由です。

最後に、各クエリの名前を1つの関数に入れて、関数を定期的に実行します。

于 2012-09-05T00:43:23.567 に答える
2

あなたが概説した戦略は非常に難しい場合があります。別の回答で説明されているように、クエリを使用INSERTして新しいAccess行をSQL​​Serverにコピーできます。

ただし、既存のAccess行に変更があり、それらの変更をSQL Serverにも伝達する場合は、それほど単純ではありません。また、SQL Serverから削除されたAccess行も削除したい場合は、さらに複雑になります。

別のアプローチを使用する方が合理的だと思います。データをSQLServerに1回移行します。次に、AccessデータベースのテーブルをSQLServerテーブルへのODBCリンクに置き換えます。その後、Accessアプリケーション内からのデータへの変更は、個別の同期手順を必要としません...それらはすでにSQLServerにあります。また、それらを同期するためにコードを記述する必要はありません。

WebサーバーとSQLServer間の接続が読み取り専用であることが懸念される場合は、そのように設定してください。Accessアプリケーションの読み取り/書き込み権限を個別に許可することもできます。

于 2012-09-05T06:30:57.863 に答える
1

Microsoftの無料のSQLServerMigration Assistant(SSMA)を使用して、AccessをSQLServerに移行しました。このツールは非常に簡単に使用できます。このツールで発生した唯一の問題は、移行時にデータ型が過負荷になることでした。これが意味するのは、小さな文字列が場合によってはに変換されるということNVARCHAR(MAX)です。それ以外の場合、ツールは非常に便利であり、「プロファイル」を設定した後に再利用できます。

于 2012-09-05T00:17:02.950 に答える