2010-10-14 29 views
70

Şu anda bir tabloya yeni satır eklemek istediğim bir saklı yordamım var.Saklı yordamda yeni bir kılavuz nasıl oluşturulur?

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

Yani birincil anahtar 'id' bir Guıd olduğunu. C# kodunda yeni bir Guid oluşturmayı biliyorum ama saklı yordam içinde birincil anahtar değerleri için yeni Guid'lerin nasıl üretileceğinden emin değilim.

Birisi bana yardım edebilir mi lütfen?

Teşekkürler!

cevap

140

SQL Server ile NEWID işlevini kullanabilirsiniz. C# kullanıyorsunuz, bu yüzden SQL Server kullandığınızı kabul ediyorum. Eminim diğer veritabanı sistemi benzer işlevlere sahip. Eğer Oracle kullanıyorsanız

select NEWID() 

o zaman SYS_GUID() fonksiyonunu kullanabilirsiniz. Bu sorunun cevabını göz atın: Generate a GUID in Oracle

25

deneyin:

SELECT NewId() 
12

Sen Bu soru hakkında sormadı, ama bir birincil anahtar için bir GUID kullanarak olduğuna işaret değer olduğunu düşünüyorum her zaman iyi bir fikir değil. Basit olsa da, bir dizinde GUID kullanıldığında performansı etkileyebilir. Bunun yerine bir tamsayı değeri olan Identity column kullanmayı düşündünüz mü?

Okumanıza yardımcı olabilecek birkaç makale.

+0

Evet, sana katılıyorum:

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

Bunu şöyle yapabilirsiniz uuid yeniden kullanmak istiyorsanız. Ancak başka birinin geliştirdiği bir veritabanı üzerinde çalışıyorum. Önceki tabloların tümü bir Guid'i birincil anahtar olarak kullandı, bu yüzden tutarlı olmaya çalışıyorum. Yeni tablolar için olsa da, duruma göre bir vaka üzerinde değerlendirmeliyim. Yine de bilgi için teşekkürler. –

1

o UUID(). böylece sorgu olacaktır:

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

, her ikisi de mysql'de test edildi –

İlgili konular