我目前有一个存储过程,我想在其中将新行插入表中。
insert into cars
(id, Make, Model)
values('A new Guid', "Ford", "Mustang")
所以主键'id'是Guid。我知道如何在C#代码中创建一个新的Guid,但在存储过程中,我不确定如何为主键值生成新的Guid。
有人可以帮帮我吗?
谢谢!
答案 0 :(得分:165)
使用SQL Server,您可以使用函数NEWID。您正在使用C#,所以我假设您正在使用SQL Server。我确信其他数据库系统也有类似的功能。
select NEWID()
如果您使用的是Oracle,则可以使用SYS_GUID()
功能。看看这个问题的答案:Generate a GUID in Oracle
答案 1 :(得分:28)
试试这个:
SELECT NewId()
答案 2 :(得分:12)
你在问题中没有问过这个问题,但我认为值得指出的是,使用GUID作为主键并不总是一个好主意。虽然很简单,但在索引中使用GUID时会影响性能。您是否考虑使用Identity column来代替整数值?
以下是一些可能有助于阅读的文章。
答案 3 :(得分:1)
在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;
答案 4 :(得分:0)
以问题的格式(发现学徒!)
insert into cars
(id, Make, Model)
values(NEWID(), "Ford", "Mustang")