2011-12-04 7 views
0

私はdriverというテーブルを持っています。ドライバの位置フィールド( 'pos_x'とpos_y)を乱数で更新したいのですが、多くのドライバーは私が持っている)その後、データを再度選択する彼らの位置を更新するこのことを行う別の方法はありますか?2つのフィールドの複数のレコードを更新する

+1

"SQL ServerとASP.NET C#:"のようなものをタイトルに入れないでください。それらはタグであり、タイトルではなくタグに属します。 –

+0

申し訳ありません。私はしません 。 –

答えて

2

ドライバ情報を保持するクラスを作成した場合は、最後のステップを削除することができます(データを再度選択する)。

手順は次のようになります。

1)リストにデータを読み込みます。

2)リストの値を更新します。

3)リストからデータベースにデータを書き込みます。

+0

更新コマンドの後に更新された値が必要なので、これはうまくいきません。私は再びそれらを取得する必要があります。 –

+0

@rNuǝɹɐ:メモリ内で更新されたデータベースをデータベースから再度抽出する必要があるのでしょうか?もしそうなら、あなたの質問のアウトラインはあなたが得ることができるほど効率的です。さもなければ、私が提案したことは、そのステップをなくし、プロセスをより効率的にすることです。 –

+0

うん、そうですね、ごめんなさい、あなたを助けてくれてありがとう。 –

1

私はあなただけのSQLを使用して非常に簡単にこれを行うことができます乱数

とドライバーの位置フィールド(POS_XとPOS_Y)を更新したいと思います。

UPDATE Person 
SET Pos_X = ABS(CHECKSUM(NEWID())) % 1000 
    , Pos_Y = ABS(CHECKSUM(NEWID())) % 1000 

これはすべてSQLサーバー上で実行されるため、ネットワークのオーバーヘッドにデータをやりとりすることはありません。もちろん、後で作業するには結果を選択する必要があります。

なぜABS-CHECKSUM-NEWIDですか?私はless than satisfactory resultsとT-SQLのRAND()関数で試してみました!

関連する問題