Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
SQL-Datenbank in Microsoft Fabric
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. Nach dem Neustart von Windows kann die GUID erneut aus einem niedrigeren Bereich gestartet werden, ist aber weiterhin global eindeutig. Wenn eine GUID-Spalte als Zeilenbezeichner verwendet wird, kann die Verwendung NEWSEQUENTIALID schneller sein als die Verwendung der NEWID Funktion. Dies liegt daran, dass die NEWID Funktion zufällige Aktivitäten verursacht und weniger zwischengespeicherte Datenseiten verwendet. Die Verwendung NEWSEQUENTIALID hilft auch, die Daten- und Indexseiten vollständig auszufüllen.
Wichtig
Wenn der Datenschutz ein Problem darstellt, verwenden Sie diese Funktion nicht. Es ist möglich, den Wert der nächsten generierten GUID zu erraten und daher auf Daten zuzugreifen, die dieser GUID zugeordnet sind.
NEWSEQUENTIALID ist ein Wrapper über die Windows UuidCreateSequential-Funktion , wobei einige Byte-Shuffling angewendet wurden.
Warnung
Die UuidCreateSequential Funktion verfügt über Hardwareabhängigkeiten. Auf SQL Server können Cluster von sequenziellen Werten entstehen, wenn Datenbanken (z.B. eigenständige Datenbanken) auf andere Computer verschoben werden. In der Azure SQL-Datenbank und wenn Sie Always On verwenden, können Cluster sequenzieller Werte entwickeln, wenn die Datenbank nicht auf einen anderen Computer übertragen wird.
Transact-SQL-Syntaxkonventionen
Syntax
NEWSEQUENTIALID ( )
Rückgabetypen
uniqueidentifier
Bemerkungen
NEWSEQUENTIALID kann nur mit DEFAULT Einschränkungen für Tabellenspalten vom Typ uniqueidentifier verwendet werden. Beispiel:
CREATE TABLE myTable
(
ColumnA UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID()
);
Wenn NEWSEQUENTIALID sie in DEFAULT Ausdrücken verwendet wird, kann sie nicht mit anderen skalaren Operatoren kombiniert werden. Beispielsweise können Sie den folgenden Code 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.
NEWSEQUENTIALID in Abfragen kann nicht darauf verwiesen werden.
Sie können zum Generieren von GUIDs verwenden NEWSEQUENTIALID , um Seitenteilungen und zufällige E/A auf Blattebene von Indizes zu reduzieren.
Jede mithilfe dieser NEWSEQUENTIALID GuiD generierte GUID ist auf diesem Computer eindeutig. GuiDs, die mit der Verwendung NEWSEQUENTIALID generiert werden, sind nur dann auf mehreren Computern eindeutig, wenn der Quellcomputer über eine Netzwerkkarte verfügt.