Как создать новый Guid в хранимой процедуре?

В настоящее время у меня есть хранимая процедура, в которой я хочу вставить новые строки в таблицу.

insert into cars
(id, Make, Model)
values('A new Guid', "Ford", "Mustang")

Таким образом, первичный ключ 'id' является Guid. Я знаю, как создать новый код Guid в С#, но в пределах хранимой процедуры. Я не уверен, как создавать новые Гиды для значений первичного ключа.

Может кто-нибудь помочь мне?

Спасибо!

Ответ 1

С SQL Server вы можете использовать функцию NEWID. Вы используете С#, поэтому я предполагаю, что вы используете SQL Server. Я уверен, что другие системы баз данных имеют схожие функции.

select NEWID()

Если вы используете Oracle, вы можете использовать функцию SYS_GUID(). Ответьте на этот вопрос: Создайте GUID в Oracle

Ответ 2

Попробуйте следующее:

SELECT NewId()

Ответ 3

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

Вот несколько статей, которые могут быть полезны для чтения.

Ответ 4

В MySQL это UUID(). поэтому запрос будет выглядеть следующим образом:

insert into cars
(id, Make, Model)
values(UUID(), "Ford", "Mustang")

Если вы хотите повторно использовать uuid, вы можете сделать это следующим образом:

set @id=UUID();
insert into cars
(id, Make, Model)
values(@id, "Ford", "Mustang");
select @id;