SQL Serverデータベースから情報を取り出し、Webサービスを介してオブジェクトモデルをロードし、次に渡すアプリケーションを作成しようとしています。その情報をSQL Serverデータベースとは異なるスキーマに基づいたAccess DBに格納しますが、含まれる情報は同じです(したがって、これはETLプロセスに似ていると想定しています)。私が実行している問題は、情報(SQL Server)を引き出しているデータベースのプライマリキーがGUIDであるのに対し、私がそれらを(アクセス)に入れているデータベースはINTだということです。だから、例えば:GUIDを持つデータベースのキーと整数を持つデータベースのキーとの間のデータベース関係を維持する
表1、SQL Server内の人表:
╔══════════════════════════════════════╦══════════╦════════════╗
║ ID ║ Name ║ CreatedOn ║
╠══════════════════════════════════════╬══════════╬════════════╣
║ 3648F6BB-F743-4952-9C69-93336667F3B1 ║ Person 1 ║ 01/01/2012 ║
║ DE44577A-CAE7-4101-B962-C052214E723B ║ Person 2 ║ 02/01/2012 ║
║ 94115C5E-9C7E-40CF-8A87-D4D837BD5DB3 ║ Person 3 ║ 03/01/2012 ║
║ F93E77D9-C344-420C-9499-BA3B4DD0F0BA ║ Person 4 ║ 04/01/2012 ║
╚══════════════════════════════════════╩══════════╩════════════╝
は表2、Accessの人表:
╔════╦══════════╦════════════╗
║ ID ║ Name ║ CreatedOn ║
╠════╬══════════╬════════════╣
║ 1 ║ Person 1 ║ 01/01/2012 ║
║ 2 ║ Person 2 ║ 02/01/2012 ║
║ 3 ║ Person 3 ║ 03/01/2012 ║
║ 4 ║ Person 4 ║ 04/01/2012 ║
╚════╩══════════╩════════════╝
ので、表1は、データの中に返される方法ですSQL Serverデータベース、および表2は、情報をAccessデータベースに表示する方法を示しています。したがって、すべてのGUIDは整数である必要がありますが、データ間の関係は同じに維持する必要があります。たとえば、SQL ServerとAccessで人のアドレス(アドレステーブルも同様に設定されます)を取得するためにクエリを実行すると、クエリはGUIDまたは整数が使用されているかどうかにかかわらず同じ結果を返さなければなりません。
私は何を考えていたこと(データベースに日付時刻型であり、そのようなものとして、すべてのレコードで一意である必要があります)CreatedOn日までに注文した、SQL ServerでROW_NUMBER()を使用していた:
SELECT
(ROW_NUMBER() OVER (ORDER BY CreatedOn)) AS ID,
Name,
CreatedOn
FROM Table2;
唯一のことは、クエリから重複した整数IDが返されてきていることです。たとえば、上記の表1は次のようになります。
╔════╦══════════╦════════════╗
║ ID ║ Name ║ CreatedOn ║
╠════╬══════════╬════════════╣
║ 1 ║ Person 1 ║ 01/01/2012 ║
║ 2 ║ Person 2 ║ 02/01/2012 ║
║ 1 ║ Person 3 ║ 03/01/2012 ║
║ 1 ║ Person 4 ║ 04/01/2012 ║
╚════╩══════════╩════════════╝
各IDは一意である必要があります。誰かが私が達成しようとしていることをやり遂げる良い方法を考えることができますか?私は現在それをやろうとしている方法に何か問題はありますか?
ご協力いただければ幸いです。