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


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

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

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

может кто-нибудь помочь мне, пожалуйста?

спасибо!

4 79

4 ответа:

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

select NEWID()

Если вы используете Oracle, то вы можете использовать SYS_GUID()

попробуйте это:

SELECT NewId()

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

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

в 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;