2011-12-04 64 views
0

我有一個名爲驅動程序的表,我想用隨機數字更新驅動程序的位置字段('pos_x'和pos_y),我所做的只是從表中選擇數據我有很多司機)然後更新他們的位置,然後再次選擇數據是否有另一種方式來做這件事?更新兩個字段的多個記錄

+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?我用T-SQL的RAND()函數與less than satisfactory results一起試了一下!