1
いくつかの例を組み合わせて、私は次のクエリを考え出しました(フィールドとテーブル名は匿名化されていますので、誤植を挿入しないことを願っています)。ランダムなデータで複数の行を別のテーブルから更新していますか?
UPDATE destinationTable
SET destinationField = t2.value
FROM destinationTable t1
CROSS APPLY (
SELECT TOP 1 'SomeRequiredPrefix ' + sourceField as value
FROM #sourceTable
WHERE sourceField <> ''
ORDER BY NEWID()
) t2
問題 現在、すべてのレコードがdestinationField
に同じ値を取得し、値がランダムと異なることが必要です。私はおそらくここで何かを逃しているでしょう
これはうまくいっていますが、それでもやるべきことすべてを行っていません。データは無作為ですが、#sourcetableは宛先テーブルの記録がはるかに少ないので、LEFT OUTER JOINを使用すると思います。そうしないと、#sourceTableは宛先テーブルの行更新数を制限しています。 sourceFieldには多くのソースレコードがあるので、 "WHERE sourceField <>" '"にしておくことが重要です。 – TTT
あなたはそれが "UPDATE dt"ですか? "UPDATE destinationtable"ですか? – TTT
@TTT各テーブルにはいくつのレコードがありますか? – SQLChao