В чем преимущество хранения newid () в столбце с типом данных UNIQUEIDENTIFIER в SQL Server 2012?
В моей таблице SQL Server 2012 указано следующее определение столбца:
[GlobalId] UNIQUEIDENTIFIER DEFAULT (newid()) NULL,
Есть ли преимущество в том, что это определено как UNIQUEIDENTIFIER, или я могу просто определить его как строку. Причина, по которой я спрашиваю, заключается в том, что позднее я захочу не хранить полное значение GUID, и я, возможно, захочу создать свой собственный Id.
Теперь он хранится как UNIQUEIDENTIFIER, я могу изменить определение на строку и все еще работать с DEFAULT?
Вот пример того, что я сохранил в столбце GlobalId:
6ffcac5e-88f1-4207-bbbe-0fc14265c01f
Как сказано в ссылке, предоставленной valex,
GUID – уникальное двоичное число; ни один другой компьютер в мире не будет генерировать дубликат этого значения GUID. Основное назначение GUID – назначить идентификатор, который должен быть уникальным в сети с множеством компьютеров на многих сайтах.
Так что интерес этот знаменитый уникальный факт.
Если вам нужны строковые значения, используйте строковые значения, но встроенные функции в sql-сервере, позволяющие генерировать новые значения, – NEWID и NEWSEQUENTIALID, что дает UNIQUEIDENTIFIER.
Вы не обязаны использовать UNIQUEIDENTIFIER для столбцов идентификации, это будет зависеть от ваших данных и серверов: если только один сервер базы данных генерирует ключи, идентификатор последовательности – это хорошо, и он несколько эффективнее (и черт легко читать ), чем GUID. Iif несколько серверов генерируют ключи, а затем идут с GUID
Я не уверен в вопросе, который вы задаете. Но похоже, как преобразовать uniqueidentifer в строку. Чтобы преобразовать uniqueidenitifier в преобразование строки (char (36), newid ()) вернет строку.