2008-09-17 75 views
0

我有一個新的varchar(10)字段在數據庫中有1000多條記錄。我想更新表格,這樣我可以在現場獲得隨機數據。我正在尋找一個SQL解決方案。如何用隨機數據更新字段?

我知道我可以使用遊標,但這似乎不雅。

MS-SQL 2000,BTW

回答

5
update MyTable Set RandomFld = CONVERT(varchar(10), NEWID()) 
+0

有了這個此外 UPDATE \t表中設置字段= CONVERT(VARCHAR(10),左(NEWID(),10)) – 2008-09-17 14:51:09

1

你也許能夠適應東西like this加載值的測試數據集,這取決於你正在尋找

0

如果這是一次性的事情只是爲了什麼將數據導入系統我真的看不到使用遊標的問題,因爲我討厭使用遊標,他們確實有自己的位置。

1

此外,如果你只是做這個測試或一次使用,我會說一個優雅的解決方案並不是真的有必要。

0

如何:

UPDATE TBL SET Field = LEFT(CONVERT(varchar(255), @myid),10) 
1

爲什麼不使用當前時間戳和隨機數的MD5校驗和的前10個字符?

0

,如果你是在SQL Server中,你可以使用

CAST(RAND() as varchar(10)) 

編輯:這將只是一個迭代裏面工作。作爲多行插入的一部分,它將爲每一行使用相同的RAND()結果。

1

喜歡的東西(未測試的代碼):

UPDATE yourtable 
SET yourfield= CHAR(32+ROUND(RAND()*95,0)); 

很顯然,如果你想多達十個字符串聯更多的隨機字符。 查詢優化器可能會將所有字段設置爲相同的值;在這種情況下,我會嘗試

SET yourfield=LEFT(yourfield,0)+CHAR… 

誘使優化器重新計算每次表達式。