Identyfikator GUID serwera SQL

Identyfikator Guid Serwera Sql



W tym poście nauczymy się, jak używać typu uniqueidentifier w SQL Server. Będziemy również używać funkcji NEWID() i NEWSEQUENTIALID() do generowania wartości GUID.

Typ unikatowego identyfikatora programu SQL Server

Jest to 16-bajtowa wartość identyfikatora GUID używana w kolumnie lub zmiennej lokalnej. Możesz utworzyć wartość typu uniqueidentifier za pomocą funkcji NEWID() i NEWSEQUENTIALID().

Wartość GUID można również wygenerować, konwertując wartość ciągu w formacie xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, gdzie x jest cyfrą szesnastkową z zakresu 0–9.







Ze względu na „losowość” wartości GUID gwarantuje się, że wartość GUID może być unikalna w całej bazie danych, a nawet na serwerach. To sprawia, że ​​jest to doskonały typ danych do jednoznacznej identyfikacji danej wartości.



SQL Server NEWID() Funkcja

Funkcja NEWID() pozwala nam wygenerować nową unikalną wartość typu uniqueidentifier. Składnia jest taka, jak pokazano:



ZMIANA ( )

Na przykład:





zadeklaruj @gid unikalny identyfikator;
ustaw @gid = ZMIANA();
wybierz @gid jako gid;

Powyższe instrukcje powinny zwrócić wartość GUID jako:

kołowacizna
873412E2-A926-4EAB-B99F-A1E47E727355

SQL Server NEWSEQUENTIALID() Funkcja

Ta funkcja umożliwia sekwencyjne generowanie unikalnych wartości identyfikatorów GUID. Działa poprzez generowanie wartości identyfikatora GUID, która jest większa niż poprzednio wygenerowany identyfikator GUID.



Dzięki temu jest użyteczny jako identyfikator wiersza, ponieważ generuje wartości sekwencyjnie zamiast ręcznego określania następnej wartości GUID za pomocą funkcji NEWID().

Składnia funkcji wygląda następująco:

NEWSEKWENCJAID ( )

Używanie identyfikatora GUID programu SQL Server jako identyfikatora wiersza

Poniższy przykład pokazuje, jak użyć funkcji newsequentialid() jako identyfikatora wiersza dla danej kolumny.

utwórz wpisy w tabeli (
id uniqueidentifier nie null domyślny klucz podstawowy newsequentialid(),
nazwa_serwera varchar(50),
adres_serwera varchar(255) nie jest pusty,
metoda kompresji varchar(100) domyślnie „brak”,
rozmiar zmiennoprzecinkowy size_on_disk nie jest pusty,
rozmiar_skompresowany zmiennoprzecinkowy,
total_records int nie jest puste,
data_początkowa
);
wstawić
w
WPISY(nazwa_serwera,
adres serwera,
metoda kompresji,
rozmiar dysku,
rozmiar_skompresowany,
suma_rekordów,
data_początkowa)
wartości
('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');

W powyższym przykładzie kolumnę ID ustawiamy jako typ uniqueidentifier, a wartość domyślną jako wartość wygenerowaną przez funkcję newsequentialid().

Wynikowa tabela wygląda następująco:

wybierz * z wpisów;

Wyjście:

Chociaż użycie wartości GUID może zapewnić ścisłą unikatowość, może to być trudne podczas debugowania lub wybierania określonych wartości.

Wniosek

Z tego przewodnika dowiedziałeś się o typie uniqueidentifier w SQL Server. Dowiedziałeś się również, jak generować wartości GUID za pomocą funkcji NEWID() i NEWSEQUENTIALID().