Как создать новый идентификатор Guid в хранимой процедуре?
в настоящее время у меня есть хранимая процедура, в которой я хочу вставить новые строки в таблицу.
insert into cars
(id, Make, Model)
values('A new Guid', "Ford", "Mustang")
таким образом, первичный ключ ' id ' является идентификатором Guid. Я знаю, как создать новый Guid в коде C#, но в хранимой процедуре я не уверен, как создать новые GUID для значений первичного ключа.
может кто-нибудь помочь мне, пожалуйста?
спасибо!
4 ответа:
С SQL Server вы можете использовать функцию NEWID. Вы используете C#, поэтому я предполагаю, что вы используете SQL Server. Я уверен, что другие системы баз данных имеют аналогичные функции.
select NEWID()
Если вы используете Oracle, то вы можете использовать
SYS_GUID()
вы не спрашивали об этом в своем вопросе, но я думаю, что стоит отметить, что использование GUID для первичного ключа не всегда хорошая идея. Хотя это просто, это может повлиять на производительность, когда GUID используется в индексе. Вы рассматривали возможность использования столбец Identity это целочисленное значение вместо этого?
вот несколько статей, которые могут быть полезны для чтения.
- эффекты производительности при использовании GUID как первичные ключи (SQL-сервер Журнал)
- первичные ключи: идентификаторы против Идентификаторы GUID (Джефф Этвуд)
- стоимость GUID в качестве первичных ключей (статья Джимми Нельсона, на которую ссылаются две другие статьи)