私はこのコードを使用して、各アイテムにランダムなIDを生成する関数を呼び出してテーブルを更新します。私は約1000行から始めましたが、現在はサイズが大きくなり、テーブルに重複IDがあることがわかります。私は使用しているコードを修正する方法はありますか?同様に、新しいコードが生成されるように、すでにテーブルに生成されているIDを探します。私はまた、最初のまたは最後の名前が同じ文字で始まる場合、同じIDを生成することに気づきました。この関数はFNameとLNameの組み合わせで '23456789'の間に乱数を生成します。重複を見つけて削除するには
WHILE (EXISTS (SELECT Password FROM dbo.Users WHERE Password IS NULL))
BEGIN
BEGIN TRY
WITH SingleRow AS (
SELECT TOP 1
FirstName,
LastName,
Password
FROM dbo.Users
WHERE Password IS NULL
)
UPDATE SingleRow
SET Password = dbo.GenerateID(FirstName, LastName);
END TRY BEGIN CATCH
END CATCH;
END;
(おそらく逐次処理可能な)トランザクションでラップします。しかし、完全に欠陥のあるGenerateID機能を見ることはできません! –
@MitchWheat、私はOPが彼/彼女の以前の質問からの解決策を使用していると思う:https://stackoverflow.com/questions/47721893/generate-random-tokens-unique-ids-for-users-in-a-table -in-sql-server –
と誰もがそのことを知っていると思われますか? –