在SQL Server中的更新语句中使用随机记录更新表?

cho*_*obo 11 sql sql-server sql-server-2008

我有两张桌子.Table 1有大约80行,Table 2大约有1000万.

我想Table 2用随机行更新所有行Table 1.我不希望所有行都有相同的行.是否可以更新Table 2并随机选择要更新的每一行的值?

这是我尝试过的,但它在每一行中都有相同的值.

update member_info_test
set hostessid = (SELECT TOP 1 hostessId FROM hostess_test ORDER BY NEWID())
Run Code Online (Sandbox Code Playgroud)

**编辑

Lam*_*mak 15

好吧,我认为这是我写过的最奇怪的查询之一,我认为这将是非常缓慢的.但试一试:

UPDATE A
SET A.hostessid = B.hostessId
FROM member_info_test A
CROSS APPLY (SELECT TOP 1 hostessId
             FROM hostess_test 
             WHERE A.somecolumn = A.somecolumn
             ORDER BY NEWID()) B
Run Code Online (Sandbox Code Playgroud)