SQL Server-GUID

Sql Server Guid



In diesem Beitrag erfahren Sie, wie Sie den Typ uniqueidentifier in SQL Server verwenden. Wir werden auch die Funktionen NEWID() und NEWSEQUENTIALID() verwenden, um GUID-Werte zu generieren.

SQL Server Uniqueidentifier-Typ

Dies ist ein 16-Byte-GUID-Wert, der in einer Spalte oder einer lokalen Variablen verwendet wird. Mit den Funktionen NEWID() und NEWSEQUENTIALID() können Sie einen Wert vom Typ Uniqueidentifier erstellen.

Sie können einen GUID-Wert auch generieren, indem Sie einen Zeichenfolgenwert in das Format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx konvertieren, wobei x eine Hexadezimalziffer im Bereich von 0 bis 9 ist.







Aufgrund der „Zufälligkeit“ eines GUID-Werts ist garantiert, dass ein GUID-Wert über eine Datenbank oder sogar Server hinweg eindeutig sein kann. Dies ist ein hervorragender Datentyp, um einen bestimmten Wert eindeutig zu identifizieren.



SQL Server-NEWID()-Funktion

Mit der Funktion NEWID() können wir einen neuen eindeutigen Wert vom Typ uniqueidentifier generieren. Die Syntax ist wie gezeigt:



RÜCKGELD ( )

Zum Beispiel:





Deklarieren Sie @gid uniqueidentifier;
setze @gid = CHANGE();
@gid als gid auswählen;

Die obigen Anweisungen sollten einen GUID-Wert wie folgt zurückgeben:

gid
873412E2-A926-4EAB-B99F-A1E47E727355

SQL Server NEWSEQUENTIALID()-Funktion

Mit dieser Funktion können Sie nacheinander eindeutige GUID-Werte generieren. Es funktioniert, indem es einen GUID-Wert generiert, der größer als die zuvor generierte GUID ist.



Dies macht es nützlich für die Verwendung als Zeilenkennung, da es Werte sequenziell generiert, anstatt den nächsten GUID-Wert manuell mit der Funktion NEWID() zu bestimmen.

Die Funktionssyntax sieht wie folgt aus:

NEWSEQUENTIALID ( )

Verwenden der SQL Server-GUID als Zeilenbezeichner

Das folgende Beispiel zeigt, wie die Funktion newsequentialid() als Zeilenbezeichner für eine bestimmte Spalte verwendet wird.

Tabelleneinträge erstellen (
id uniqueidentifier nicht null default newsequentialid() Primärschlüssel,
server_name varchar(50),
server_address varchar(255) nicht null,
compression_method varchar(100) default 'none',
size_on_disk float nicht null,
size_compressed float,
total_records int nicht null,
init_date Datum
);
Einfügung
hinein
EINTRÄGE(server_name,
Serveradresse,
Kompressionsverfahren,
size_on_disk,
Größe_komprimiert,
total_records,
init_date)
Werte
('MySQL','localhost:3306','lz77',90.66,40.04,560000,'2022-01-02'),
('Redis','localhost:6307','Snappy',3.55,998.2,100000,'2022-03-19'),
('PostgreSQL','localhost:5432','pglz',101.2,98.01,340000 ,'2022-11-11'),
('Elasticsearch','localhost:9200','lz4',333.2,300.2,1200000,'2022-10-08'),
('MongoDB','localhost:27017','Snappy',4.55,4.10,620000,'2021-12-12'),
('Apache Cassandra','localhost:9042','zstd',300.3,200.12,10000000,'2020-03-21');

Im obigen Beispiel legen wir die ID-Spalte als uniqueidentifier-Typ und den Standardwert als den Wert fest, der von der Funktion „newsequentialid()“ generiert wird.

Die resultierende Tabelle sieht wie folgt aus:

* aus Einträgen auswählen;

Ausgabe:

Obwohl die Verwendung von GUID-Werten strenge Eindeutigkeit bieten kann, kann es beim Debuggen oder Auswählen bestimmter Werte schwierig sein.

Fazit

In diesem Handbuch haben Sie den Typ uniqueidentifier in SQL Server kennengelernt. Außerdem haben Sie gelernt, wie Sie mit den Funktionen NEWID() und NEWSEQUENTIALID() GUID-Werte generieren.