NEWSEQUENTIALID (Transact-SQL)NEWSEQUENTIALID (Transact-SQL)

DIESES THEMA GILT FÜR:jaSQL Server (ab 2008)jaAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Erstellt einen GUID, der größer ist als alle GUIDs, die seit dem Start von Windows bisher von dieser Funktion auf einem angegebenen Computer generiert wurden.Creates a GUID that is greater than any GUID previously generated by this function on a specified computer since Windows was started. Nach dem Neustart von Windows kann der GUID wieder in einem niedrigeren Bereich beginnen, ist aber immer noch global eindeutig.After restarting Windows, the GUID can start again from a lower range, but is still globally unique. Wenn eine GUID-Spalte als Zeilenbezeichner verwendet wird, kann die Verwendung von NEWSEQUENTIALID schneller zu Ergebnissen führen als die Verwendung der NEWID-Funktion.When a GUID column is used as a row identifier, using NEWSEQUENTIALID can be faster than using the NEWID function. Dies ist darauf zurückzuführen, dass die NEWID-Funktion zufällige Aktivität erzeugt und weniger zwischengespeicherte Datenseiten verwendet.This is because the NEWID function causes random activity and uses fewer cached data pages. Die Verwendung von NEWSEQUENTIALID hilft auch beim vollständigen Ausfüllen der Daten- und Indexseiten.Using NEWSEQUENTIALID also helps to completely fill the data and index pages.

Wichtig

Falls Datenschutz eine wichtige Überlegung ist, sollten Sie diese Funktion nicht verwenden.If privacy is a concern, do not use this function. Der Wert der als Nächstes erstellten GUID ist vorhersagbar, daher ist auch der Zugriff auf Daten möglich, die mit dieser GUID verknüpft sind.It is possible to guess the value of the next generated GUID and, therefore, access data associated with that GUID.

NEWSEQUENTIALID ist ein Wrapper über die Windows UuidCreateSequential -Funktion, mit einigen Byte vertauschen angewendet.NEWSEQUENTIALID is a wrapper over the Windows UuidCreateSequential function, with some byte shuffling applied.

Warnung

Die UuidCreateSequential-Funktion muss es sich um Hardware Abhängigkeiten.The UuidCreateSequential function has hardware dependencies. Auf SQL ServerSQL Server, Clustern mit sequenziellen Werten können entstehen, wenn Datenbanken (z. B. eigenständige Datenbanken) auf andere Computer verschoben werden.On SQL ServerSQL Server, clusters of sequential values can develop when databases (such as contained databases) are moved to other computers. Verwendung von Always On und auf SQL-DatenbankSQL Database, Clustern mit sequenziellen Werten können entstehen, wenn die Datenbank auf einen anderen Computer Failover.When using Always On and on SQL-DatenbankSQL Database, clusters of sequential values can develop if the database fails over to a different computer.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax


NEWSEQUENTIALID ( )  

RückgabetypReturn Type

uniqueidentifieruniqueidentifier

HinweiseRemarks

NEWSEQUENTIALID() kann nur verwendet werden, mit DEFAULT-Einschränkungen für Tabellenspalten vom Typ "uniqueidentifier".NEWSEQUENTIALID() can only be used with DEFAULT constraints on table columns of type uniqueidentifier. Beispiel:For example:

CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT NEWSEQUENTIALID());   

Wenn NEWSEQUENTIALID() in DEFAULT-Ausdrücken verwendet wird, ist eine Kombination mit anderen Skalaroperatoren nicht möglich.When NEWSEQUENTIALID() is used in DEFAULT expressions, it cannot be combined with other scalar operators. Sie können z. B. folgende Aktionen nicht ausführen:For example, you cannot execute the following:

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.In the previous example, myfunction() is a scalar user-defined scalar function that accepts and returns a uniqueidentifier value.

Auf NEWSEQUENTIALID() kann in Abfragen nicht verwiesen werden.NEWSEQUENTIALID cannot be referenced in queries.

Sie können NEWSEQUENTIALID() zum Generieren von GUIDs verwenden, um Seitenteilungen und zufällige E/A auf Blattebene von Indizes zu reduzieren.You can use NEWSEQUENTIALID to generate GUIDs to reduce page splits and random IO at the leaf level of indexes.

Jede mit NEWSEQUENTIALID() generierte GUID ist auf diesem Computer eindeutig.Each GUID generated by using NEWSEQUENTIALID is unique on that computer. Die mit NEWSEQUENTIALID() generierten GUIDs sind nur über mehrere Computer hinweg eindeutig, wenn der Quellcomputer über eine Netzwerkkarte verfügt.GUIDs generated by using NEWSEQUENTIALID are unique across multiple computers only if the source computer has a network card.

Siehe auchSee Also

NEWID ( Transact-SQL ) NEWID (Transact-SQL)
Vergleichsoperatoren ( Transact-SQL )Comparison Operators (Transact-SQL)