Приветствую Вас на сайте Info-Comp.ru! Сегодня мы с Вами рассмотрим такое понятие, как GUID, Вы узнаете, что это такое, как GUID реализован в Microsoft SQL Server и какие инструменты нам предоставляет язык T-SQL для работы с GUID.
Что такое GUID
GUID – это глобальный уникальный идентификатор.
В Microsoft SQL Server GUID реализован в виде 16-байтового типа данных UNIQUEIDENTIFIER. Значения, которые хранит данный тип данных, глобально уникальны для всех таблиц, баз данных и серверов.
В каких ситуациях нам может пригодиться такой идентификатор? Например, когда у нас есть несколько баз данных, которые хранят схожую информацию, однако все данные должны быть четко идентифицированы, даже в случае объединения всех данных из всех баз данных в один набор. Если мы будем использовать обычные целочисленные идентификаторы, такую уникальность (без дополнительных манипуляций) мы обеспечить не сможем, а вот если использовать GUID, то такая уникальность обеспечена.
Как создать GUID в Microsoft SQL Server
Сгенерировать новое значение GUID и инициализировать столбец или переменную с типом UNIQUEIDENTIFIER в SQL Server можно с помощью функции NEWID. Однако кроме этого можно сформировать GUID путем преобразования строки xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, где каждый x – это шестнадцатеричная цифра (0–9 или A–F).
Заметка! Что такое T-SQL. Подробное описание для начинающих.
Инициализируем переменную с типом UNIQUEIDENTIFIER функцией NEWID
В этом примере мы объявляем переменную с типом данных UNIQUEIDENTIFIER, а затем с помощью функции NEWID присваиваем ей значение GUID.
DECLARE @Var UNIQUEIDENTIFIER; SET @Var = NEWID(); SELECT @Var AS GUID;
Инициализируем переменную с типом UNIQUEIDENTIFIER путем преобразования строки
В данном случае мы вручную сформировали текстовую строку, т.е. GUID, и присвоили это значение переменной с типом данных UNIQUEIDENTIFIER.
DECLARE @Var UNIQUEIDENTIFIER; SET @Var = '8F9619FF-7B16-D012-B45D-90C04FC064F9'; SELECT @Var AS GUID;
Создаем столбец с типом данных UNIQUEIDENTIFIER
А теперь давайте представим, что нам необходимо, чтобы наши товары, допустим, записи в таблице Goods, имели глобально уникальный идентификатор.
Для этого мы для столбца идентификатора укажем тип данных UNIQUEIDENTIFIER и зададим значение по умолчанию, в нашем случае вызов функции NEWID.
Таким образом, всякий раз, когда новая запись вставляется в таблицу Goods, по умолчанию функция NEWID генерирует уникальное значение для столбца ProductId, т.е. GUID.
При добавлении записей в инструкции INSERT мы просто указываем ключевое слово DEFAULT в качестве значения для первого столбца, который предназначен для идентификатора. В этом случае в этот столбец по умолчанию будет вставлено значение GUID.
CREATE TABLE Goods ( ProductId UNIQUEIDENTIFIER NOT NULL PRIMARY KEY DEFAULT NEWID(), ProductName VARCHAR (50) NOT NULL ); GO INSERT INTO Goods (ProductId, ProductName) VALUES (DEFAULT, 'Системный блок'), (DEFAULT, 'Клавиатура'), (DEFAULT, 'Монитор'); GO SELECT ProductId, ProductName FROM Goods;
Заметка! Всем тем, кто только начинает свое знакомство с языком SQL, рекомендую прочитать книгу «SQL код» – это самоучитель по языку SQL для начинающих программистов. В ней очень подробно рассмотрены основные конструкции языка.
На сегодня это все, надеюсь, статья была Вам интересна и полезна, до новых встреч!