よし、これがシナリオだ。それはかなり一般的だと思います。前世でブルートフォースアプローチを使用して解決したことがありますが、もっと良い方法があるはずだと考えています。
名前の順序付けられたリストと、ユーザーが名前を並べ替え、削除、編集、リストに追加できる UI が与えられた場合、SQL データベースに保存されているリストをどのように更新しますか?
テーブル定義は次のとおりです。
CREATE TABLE [dbo].[AssyLines](
[AssyLineID] [int] IDENTITY(1,1) NOT NULL,
[ShortName] [varchar](16) NOT NULL,
[LongName] [varchar](45) NOT NULL,
[Seq] [tinyint] NOT NULL,
CONSTRAINT [PK_AssyLines] PRIMARY KEY CLUSTERED
私がやりたいことは、テーブルからすべてのエントリを読み取り、それらを UI に Seq 順に表示することです。次に、ShortName または LongName の編集、リストの並べ替え、新しいエントリの追加または既存のエントリの削除を行い、変更したリストをデータベースに保存します。
違いがある場合、これはクライアント/サーバー アプリケーションです。WCF サービスはデータベースの対話を処理し、クライアントはサービスとの間でレコードの配列を送信するだけです。
私の強引なアプローチには、テーブルをロックし、すべてのエントリを削除してから、新しいレコードをテーブルに書き直すことが含まれます。もちろん、すべてトランザクション内で、ストアド プロシージャとテーブル変数または一時テーブルのいずれかを使用します。粗雑ですが効果的ですが、誰かがマイナーな編集を行うたびにテーブルを壊して再作成することなく、これを行うためのかなり標準的な方法があると感じずにはいられません。
何か案は?現在取り組んでいるアプリケーションには、そのようなリストが 4 つまたは 5 つあります。
ありがとう、デイブ