エンティティ フレームワーク アプリケーションがあります。主に EF 規則に従っていないために、多くの問題を引き起こし始めているテーブルがあります。
2 つの重要な列はRequestType
とRequestDetailId
です。要求の各タイプには、独自の ID 列があります。これらの ID はテーブル間で重複する可能性があるためRequestType
、承認を要求に一意に関連付けるフィールドがあります。
この「One True Lookup Table」をApproval
テーブルと、各リクエスト テーブルの個別の多対多テーブルに置き換えて、リクエストを承認にリンクすることを計画しています。
この新しい承認テーブルを指しているリクエストがすでにいくつかあり、EF 内での動作が気に入っています。ただし、古いテーブルから新しいテーブルへの移行に苦労しています。これまでのところ、カーソルを使用して古いデータをループし、新しいApproval
テーブルに挿入し、ID ( SELECT SCOPE_IDENTITY()
) を使用して多対多テーブルに挿入してきました。新しい承認レコードごとに承認 ID の値を追跡する必要があるため、カーソルが必要です。多対多のテーブルに入力できるようにします。
誰かがカーソルを必要とせずに2つの挿入を行う方法を知っているかどうか、私は興味がありました. カーソルは問題ありませんが、読みにくいです。
1 つの考えは、テーブルにリクエスト ID フィールドを一時的に追加し、リクエスト ID をApproval
使用して承認を挿入し、その情報を古いテーブルに結合して多対多テーブルに入力することでした。2 つの挿入の後、リクエスト ID 列を削除します。移行を行うためだけに、null 許容のリクエスト ID 列を既存のテーブルに追加するという考えは好きではありません。
カーソルを使用せずに古いルックアップ テーブルを新しい承認/多対多テーブルに分割する方法を誰かが考えられるかどうか、私は興味がありました。