SQL 服务器将随机数据从一个 table 复制到另一个

SQL Server Copy Random data from one table to another

我有 2 tables stuffnonsensenonsensestuff 大小不同;在这种情况下,它的行数较少,但可能更多。

结构是这样的:

CREATE TABLE stuff (
    id INT PRIMARY KEY,
    details VARCHAR(MAX),
    data VARCHAR(MAX)
);

CREATE TABLE nonsense (
    id INT PRIMARY KEY,
    data VARCHAR(MAX)
);

stuff table 已经填充了 details,但是 data 目前是 NULL

我想将 nonsense 随机 的数据复制到 [=14= 的每一行中]. nonsense小了,自然会有重复,没关系。

有效:

UPDATE stuff
SET data=(SELECT TOP 1 data FROM nonsense ORDER BY NewId());

大概子查询在查询的其余部分之前被评估一次。然而,这是我想要的那种结果。

我该如何实现?

您需要为每条记录将子查询关联到 运行 它。

UPDATE stuff
SET data=(SELECT TOP 1 data 
          FROM nonsense 
          where stuff.id = stuff.id  --here
          ORDER BY NewId());