SQL Server-GUID

Sql Server Guid



In dit bericht leren we hoe we het type uniqueidentifier in SQL Server kunnen gebruiken. We zullen ook de functies NEWID() en NEWSEQUENTIALID() gebruiken om GUID-waarden te genereren.

SQL Server uniek identificatietype

Dit is een GUID-waarde van 16 bytes die wordt gebruikt in een kolom of een lokale variabele. U kunt een waarde van het type uniqueidentifier maken met behulp van de functies NEWID() en NEWSEQUENTIALID().

U kunt ook een GUID-waarde genereren door een tekenreekswaarde te converteren in de notatie xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, waarbij x een hexadecimaal cijfer is in het bereik van 0 – 9.







Vanwege de 'willekeurigheid' van een GUID-waarde is gegarandeerd dat een GUID-waarde uniek kan zijn in een database of zelfs op servers. Dit is een uitstekend gegevenstype voor het uniek identificeren van een bepaalde waarde.



SQL Server NEWID() Functie

Met de functie NEWID() kunnen we een nieuwe unieke waarde van het type uniqueidentifier genereren. De syntaxis is zoals weergegeven:



WIJZIGEN ( )

Bijvoorbeeld:





declareer @gid uniqueidentifier;
set @gid = WIJZIGEN();
selecteer @gid als gid;

De bovenstaande instructies moeten een GUID-waarde retourneren als:

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

SQL Server NEWSEQUENTIALID() Functie

Met deze functie kunt u opeenvolgend unieke GUID-waarden genereren. Het werkt door een GUID-waarde te genereren die groter is dan de eerder gegenereerde GUID.



Dit maakt het handig voor gebruik als rij-ID, omdat het waarden opeenvolgend genereert in plaats van handmatig de volgende GUID-waarde te bepalen met de functie NEWID().

De syntaxis van de functie is zoals weergegeven:

NIEUWSEQUENTIEID ( )

SQL Server GUID gebruiken als rij-ID

Het volgende voorbeeld laat zien hoe u de functie newsequentialid() gebruikt als rij-ID voor een bepaalde kolom.

tabelitems maken (
id uniqueidentifier niet null standaard newsequentialid() primaire sleutel,
servernaam varchar(50),
server_address varchar(255) niet null,
compressiemethode varchar(100) standaard 'geen',
size_on_disk float niet null,
size_compressed vlotter,
total_records int niet null,
init_date datum
);
invoegen
naar binnen
INGANGEN(servernaam,
server adres,
compressiemethode,
grootte op schijf,
grootte_gecomprimeerd,
totaal_records,
begin_datum)
waarden
('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');

In het bovenstaande voorbeeld stellen we de kolom ID in als het type uniqueidentifier en de standaardwaarde als de waarde die wordt gegenereerd door de functie newsequentialid().

De resulterende tabel is zoals weergegeven:

selecteer * uit ingangen;

Uitgang:

Hoewel het gebruik van GUID-waarden strikt uniek kan zijn, kan het moeilijk zijn bij het opsporen van fouten of het selecteren van specifieke waarden.

Conclusie

In deze handleiding hebt u meer geleerd over het type uniqueidentifier in SQL Server. U hebt ook geleerd hoe u GUID-waarden kunt genereren met de functies NEWID() en NEWSEQUENTIALID().