Ich habe eine einfache Tabelle:Wie kann ich den Wert eines Feldes in einer Tabelle als Zufallszahl aktualisieren, die die meiste Zeit einzigartig ist?
CREATE TABLE [dbo].[Word] (
[WordId] INT IDENTITY (1, 1) NOT NULL,
[NameId] INT NOT NULL
PRIMARY KEY CLUSTERED ([WordId] ASC)
);
ich einen eindeutigen Index für NameID haben
Ich versuche, diese Tabelle zu aktualisieren und eine Spalte mit einer Zufallszahl ändern:
UPDATE Word SET NameId = ROUND(RAND()*2147483647,0)
I erkennen, dass es eine sehr, sehr kleine Chance gibt, dass dies nicht funktioniert, aber es tatsächlich jedes Mal versagt, obwohl die Tabelle nur eine sehr kleine Anzahl von Zeilen hat, schlägt das Update immer fehl und sagt, dass es ein Duplikat gibt.
Kann mir jemand sagen, was hier passiert und auch eine Möglichkeit vorschlagen, diese Tabelle zu aktualisieren, so dass es keine doppelten Werte von NameId die meiste Zeit erstellt.
Ich habe gerade versucht Ihren Code ohne eindeutigen Index auf 20 Zeilen und jedes Ergebnis war der gleiche Wert –
Sie erhalten wahrscheinlich viele Duplikate mit dieser Methode – FLICKER