Freigeben über


NEWSEQUENTIALID() (Transact-SQL)

Erstellt einen GUID, der größer ist als alle GUIDs, die seit dem Start von Windows zuvor von dieser Funktion auf einem angegebenen Computer generiert wurden. Nach dem Neustart von Windows kann der GUID wieder in einem niedrigeren Bereich beginnen, ist aber immer noch global eindeutig. Wenn jetzt eine GUID-Spalte als Zeilenbezeichner verwendet wird, kann die Verwendung von NEWSEQUENTIALID schneller zu Ergebnissen führen als die Verwendung der NEWID-Funktion. Dies ist darauf zurückzuführen, dass die NEWID-Funktion zufällige Aktivität erzeugt und weniger zwischengespeicherte Datenseiten verwendet. Die Verwendung von NEWSEQUENTIALID hilft auch beim vollständigen Ausfüllen der Daten- und Indexseiten.

Wichtiger HinweisWichtig

Falls Datenschutz eine wichtige Überlegung ist, sollten Sie diese Funktion nicht verwenden. Der Wert des als Nächstes erstellten GUIDs ist vorhersagbar, daher ist auch der Zugriff auf Daten möglich, die mit diesem GUID verbunden sind.

NEWSEQUENTIALID ist ein Wrapper über die Windows-Funktion UuidCreateSequential.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

NEWSEQUENTIALID ( )

Rückgabetyp

uniqueidentifier

Hinweise

NEWSEQUENTIALID() kann nur in Bezug auf DEFAULT-Einschränkungen für Tabellenspalten des Typs uniqueidentifier verwendet werden. Beispiel:

CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT NEWSEQUENTIALID()) 

Wenn NEWSEQUENTIALID() in DEFAULT-Ausdrücken verwendet wird, ist eine Kombination mit anderen Skalaroperatoren nicht möglich. Sie können z. B. folgende Aktionen nicht ausführen:

CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT dbo.myfunction(NEWSEQUENTIALID())) 

Im vorherigen Beispiel ist myfunction() eine benutzerdefinierte Skalarfunktion, die einen uniqueidentifier-Wert annimmt und zurückgibt.

Auf NEWSEQUENTIALID() kann in Abfragen nicht verwiesen werden.

Sie können NEWSEQUENTIALID() zum Generieren von GUIDs verwenden, um Seitenkonflikte auf der Blattebene von Indizes zu reduzieren.

Jede mit NEWSEQUENTIALID() generierte GUID ist auf diesem Computer eindeutig. Die mit NEWSEQUENTIALID() generierten GUIDs sind nur über mehrere Computer hinweg eindeutig, wenn der Quellcomputer eine Netzwerkkarte hat. Weitere Informationen über GUIDs finden Sie unter Verwenden von uniqueidentifier-Daten.