Uniqueidentifier sql тип данных

узнал сам – поделись с другими

4 февраля 2011 г.

Разница между int и unique >

Эти два типа рекомендуется использовать в качестве первичных ключей в БД. Чем же они отличаются?

Тип int в sql server соответствует типу Int32 в платформе .NEТ. id новой записи генерируется автоматически путём увеличения на 1 id предыдущей записи, если для этого поля указано IDENTITY(1,1). Следовательно, id новой записи становится известно только после добавления её в таблицу.

Тип uniqueidentifier соответствует типу Guid в платформе .NET (пример: "C59498EC-5E38-41BF-9160-1B86449E02CA"). Особенностью этого типа данных является то, что статистически невозможно существование двух одинаковых id в любой информационной системе. В .NET генерируется методом Guid.NewGuid(). Отсюда следует, что id новой записи становится известным ещё перед сохранением в БД.

Выводы . Используйте uniqueidentifier, если не предполагается показывать id пользователю, т.к. он сложнее для восприятия, но удобнее при разработке. Если же нужно показывать пользователю id, например, в адресной строке браузера, то используйте целочисленный тип, но для того, чтобы узнать id новой записи, придётся выполнить запрос в БД.

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server База данных SQL Azure Azure Synapse Analytics (хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

16-байтовый идентификатор GUID. Is a 16-byte GUID.

Remarks Remarks

Столбец или локальную переменную типа uniqueidentifier можно инициализировать следующими способами: A column or local variable of uniqueidentifier data type can be initialized to a value in the following ways:

  • с помощью функции NEWID или NEWSEQUENTIALID; By using the NEWID or NEWSEQUENTIALID functions.
  • путем преобразования из строковой константы в виде xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, где каждому x соответствует шестнадцатеричная цифра (0–9 или A–F). By converting from a string constant in the form xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, in which each x is a hexadecimal digit in the range 0-9 or a-f. Например, 6F9619FF-8B86-D011-B42D-00C04FC964FF является допустимым значением uniqueidentifier. For example, 6F9619FF-8B86-D011-B42D-00C04FC964FF is a valid uniqueidentifier value.
Читайте также:  Iis перенаправление на другой адрес

Значения uniqueidentifier поддерживают операторы сравнения, Comparison operators can be used with uniqueidentifier values. однако их упорядочивание реализовано без использования поразрядного сравнения. However, ordering is not implemented by comparing the bit patterns of the two values. Со значениями unique >, , =) и проверки значения NULL (IS NULL и IS NOT NULL). The only operations that can be performed against a unique >, , =) and checking for NULL (IS NULL and IS NOT NULL). Никакие другие арифметические операторы не поддерживаются. No other arithmetic operators can be used. К типу данных uniqueidentifier можно применять все ограничения и свойства столбцов, за исключением IDENTITY. All column constraints and properties, except IDENTITY, can be used on the uniqueidentifier data type.

При репликации слиянием и репликации транзакций с обновляемыми подписками столбцы uniqueidentifier используются для уникальной идентификации строк в нескольких копиях таблицы. Merge replication and transactional replication with updating subscriptions use uniqueidentifier columns to guarantee that rows are uniquely identified across multiple copies of the table.

Преобразование данных uniqueidentifier Converting uniqueidentifier Data

Тип uniqueidentifier считается символьным типом при преобразовании из символьного выражения, поэтому на него распространяются правила усечения при преобразовании в символьный тип. The uniqueidentifier type is considered a character type for the purposes of conversion from a character expression, and therefore is subject to the truncation rules for converting to a character type. Это значит, что при преобразовании символьного выражения в символьный тип данных другой длины значения, слишком длинные для нового типа данных, усекаются. That is, when character expressions are converted to a character data type of a different size, values that are too long for the new data type are truncated. См. подраздел «Примеры» ниже. See the Examples section.

Читайте также:  Dark souls prepare to die edition боссы

ограничения Limitations and restrictions

Следующие средства и компоненты не поддерживают тип данных uniqueidentifier : These tools and features do not support the uniqueidentifier data type:

  • PolyBase PolyBase
  • Средство загрузки dwloader для Parallel Data Warehouse dwloader loading tool for Parallel Data Warehouse

Примеры Examples

В следующем примере значение uniqueidentifier преобразуется в тип данных char . The following example converts a uniqueidentifier value to a char data type.

Следующий пример показывает усечение данных, когда значение является слишком длинным для преобразования в заданный тип данных. The following example demonstrates the truncation of data when the value is too long for the data type being converted to. Так как тип данных uniqueidentifier ограничен 36 символами, все символы, выходящие за пределы этой длины, будут усечены. Because the uniqueidentifier type is limited to 36 characters, the characters that exceed that length are truncated.

Результирующий набор: Here is the result set.

Как можно предположить из названия, значением типа данных uniqueidentifier является уникальное число, сохраняемое в 16-байтовой двоичной строке. Этот тип данных тесно связан с уникальным глобальным идентификатором (Globally Unique Identifier, GUID), который гарантирует глобальную уникальность. Следовательно, используя этот тип данных, вы можете уникально идентифицировать данные и объекты в распространяемых системах.

Инициализация столбца или переменной с типом uniqueidentifier может быть выполнена при использовании функций newid и newsequentialid, так же как и при помощи строковой константы, записанной в специальной форме с использованием десятично-шестнадцатеричных цифр и дефисов. (Функции new id и newsequentialid описываются в разд. «Системные функции» далее В этом разделе.)

Столбец с типом данных newsequentialid можно описать при использовании ключевого слова rowguidcol, чтобы указать, что этот столбец содержит значения идентификатора. Это ключевое слово не генерирует никаких значений. Таблица может иметь несколько столбцов типа newsequentialid, однако только один из них может иметь ключевое слово rowguidcol.

Rate this post

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *