2 つのテーブルが外部キーを使用して 1:1 の関係を持つデータベースがあります。表 1 はマニフェストと呼ばれ、表 2 はインベントリと呼ばれます。アプリケーションを使用して在庫レコードが追加されると、外部キーを使用してマニフェスト テーブル内の一致するレコードを参照するように構築されます。さらに、これにより、一致する Received (datatype: BIT
) というレコードのマニフェスト テーブル内の列が 1 に更新されます。これは、調整とレポートの目的で使用されます。
ここで注意が必要です。このデータベースは、クライアント サーバー関係で Sync Framework を使用してサーバー データベースに同期されます。マニフェスト テーブルはサーバーからクライアントへ一方向で同期され、インベントリ テーブルはクライアントからサーバーへ同期されます。このため、マニフェスト テーブルの「受信済み」列は、同期後にサーバー側で常に正確に更新されるとは限りません。
この更新を実行するためのストアド プロシージャを作成することを考えていましたが、SQL (および T-SQL) に少し慣れていません。私が使用することを考えていた SP は、 aを使用CURSOR
して、外部キーがあるインベントリ テーブル内のレコードを検索しますNOT NULL
(これは、マニフェストにないものを受け取る例外があるため許可されています)。カーソルを使用すると、すべてのレコードを繰り返し処理して、マニフェスト テーブル内の一致するレコードを見つけ、"received" 列を更新できます。これがこの更新を実行する最良の方法ではないことはわかっています。より速く、より少ないリソースを使用して、これを行う別の方法を誰かが提案できますか? 例をいただければ幸いです =)