GUID SQL-сервера

Guid Sql Servera



В этом посте мы узнаем, как использовать тип uniqueidentifier в SQL Server. Мы также будем использовать функции NEWID() и NEWSEQUENTIALID() для генерации значений GUID.

Тип уникального идентификатора SQL Server

Это 16-байтовое значение GUID, используемое в столбце или локальной переменной. Вы можете создать значение типа уникального идентификатора, используя функции NEWID() и NEWSEQUENTIALID().

Вы также можете сгенерировать значение GUID, преобразовав строковое значение в формате ххххххх-хххх-хххх-хххх-ххххххххххх, где x — шестнадцатеричная цифра в диапазоне от 0 до 9.







Из-за «случайности» значения GUID гарантируется, что значение GUID может быть уникальным в базе данных или даже на серверах. Это отличный тип данных для уникальной идентификации заданного значения.



Функция SQL Server NEWID()

Функция NEWID() позволяет нам генерировать новое уникальное значение типа uniqueidentifier. Синтаксис такой, как показано:



СДАЧА ( )

Например:





объявить уникальный идентификатор @gid;
установить @gid = ИЗМЕНИТЬ();
выберите @gid как gid;

Приведенные выше операторы должны возвращать значение GUID как:

Гид
873412E2-A926-4EAB-B99F-A1E47E727355

Функция SQL Server NEWSEQUENTIALID()

Эта функция позволяет последовательно генерировать уникальные значения GUID. Он работает, генерируя значение GUID, которое больше, чем ранее сгенерированный GUID.



Это делает его полезным для использования в качестве идентификатора строки, поскольку он генерирует значения последовательно, а не вручную определяет следующее значение GUID с помощью функции NEWID().

Синтаксис функции показан ниже:

НОВОСТИПОСЛЕДОВАТЕЛЬНОСТЬ ( )

Использование GUID SQL Server в качестве идентификатора строки

В следующем примере показано, как использовать функцию newsequentialid() в качестве идентификатора строки для заданного столбца.

создать записи в таблице(
id uniqueidentifier не null по умолчанию первичный ключ newsequentialid(),
имя_сервера varchar(50),
server_address varchar (255) не нуль,
сжатие_метод varchar (100) по умолчанию 'нет',
size_on_disk с плавающей точкой не равен нулю,
size_compressed с плавающей запятой,
total_records int не нуль,
дата_инициализации
);
вставлять
в
ЗАПИСИ(имя_сервера,
адрес сервера,
метод_сжатия,
Размер на диске,
размер_сжатый,
всего_записей,
дата_инициализации)
ценности
('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');

В приведенном выше примере мы устанавливаем столбец ID как уникальный тип идентификатора, а значение по умолчанию — как значение, сгенерированное функцией newsequentialid().

Результирующая таблица выглядит так:

выбрать * из записей;

Выход:

Хотя использование значений GUID может обеспечить строгую уникальность, это может быть сложно при отладке или выборе конкретных значений.

Вывод

В этом руководстве вы узнали о типе uniqueidentifier в SQL Server. Вы также узнали, как генерировать значения GUID с помощью функций NEWID() и NEWSEQUENTIALID().