Как создать новый 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;