Anasayfa » Forum

Sql hakkında sorum ...
 
Bildirimler

Sql hakkında sorum var, indexlenmiş auto key hakkında  

  RSS
 Anonim

ben mesela bir ürünID oluşturdum.

 

özelliklerden identy specificationdan identy incrementi 1 yaptım ve seedi ise 0001 yapmak için ne yapmam gerkli. 

 

yani autokey her yeni ürün adı için 

 

00001

00002

00003 şeklinde nasıl arttırılabilir ? 

Alıntı
Gönderildi : 31/05/2011 23:41
CozumPark
(@cozumpark)
Kıdemli Üye

http://www.industrialtrainingkolkata.com/?p=2

CevapAlıntı
Gönderildi : 01/06/2011 00:48
 Anonim

ilginiz için teşekkürler, ama bendeki ayarlar aynı. lakin yine 1 , 2 , 3 , 4 şeklinde yazılı.

 

ben onu 00001 yapmak istiyorum. decimal yapsam farkı olur mu ? 

CevapAlıntı
Gönderildi : 01/06/2011 01:04
CozumPark
(@cozumpark)
Kıdemli Üye

Çok pardon. Anladığım kadarıyla siz otomatik arttırma ayarını başarılı bir şekilde oluşturmuşsunuz ancak görüntülenen sayının biçimlendirmesi ile ilgili sıkıntınız var.


SQL'de belirttiğiniz biçimde bir tanımlama yok; diğer veritabanlarında da olduğunu sanmıyorum çünkü buradaki durum tamamen oradaki verinin biçimlendirmesiyle ilgili. Bu biçimlendirme de program tarafında çözülür; veritabanı kısmında değil.

CevapAlıntı
Gönderildi : 01/06/2011 02:29
Kadir Avci
(@kadiravci)
Saygın Üye Forum Yöneticisi

Normalde id'ler bu şekilde pek tutulmaz ve tavsiye edilmez. Fakat bu şekilde yapmak istiyorsanız şu şekilde bir yol izleyebilirsiniz.

 create function CustomerNumber (@id int) 

returns char(5) 

as 

begin 

return 'C' + right('0000' + convert(varchar(10), @id), 4) 

end

CevapAlıntı
Gönderildi : 01/06/2011 03:47
 Anonim

teşekkürler. SQL baya derin konu galiba. return C nin anlamını açıklayabilirmisiniz mahsuru yoksa? yeniyim de SQL de.

CevapAlıntı
Gönderildi : 01/06/2011 11:56
CozumPark
(@cozumpark)
Kıdemli Üye

[quote user="Kadir Avci"]

Normalde id'ler bu şekilde pek tutulmaz ve tavsiye edilmez. Fakat bu şekilde yapmak istiyorsanız şu şekilde bir yol izleyebilirsiniz.

 create function CustomerNumber (@id int) 

returns char(5) 

as 

begin 

return 'C' + right('0000' + convert(varchar(10), @id), 4) 

end

[/quote]

Bu da bir nevi biçimlendirmedir. Üstelik datanın her okunuşunda SQL tarafında bu sorguyu çalıştıracaksınız. Bu fonksiyonu bir view'da kullanıp her iki durumun da performans istatistiğini incelerseniz kaybı görebilirsiniz.

En sağlıklı yol uygulama tarafında biçimlendirme yöntemlerini kullanmak. 

CevapAlıntı
Gönderildi : 01/06/2011 13:38
 Anonim

uygulamadan kastınz, programlamayla mı ? yani programlıyıcı tarafından ...

CevapAlıntı
Gönderildi : 01/06/2011 19:27
CozumPark
(@cozumpark)
Kıdemli Üye

Şöyle diyelim.


Veriler veritabanında yer alır; o veriler de en az 1 yazılım tarafından kullanılır ya; işte o yazılımı kastediyorum.

CevapAlıntı
Gönderildi : 02/06/2011 01:18
Kadir Avci
(@kadiravci)
Saygın Üye Forum Yöneticisi

Tekrar söyliyim. Bu tarz id indexleme işlemlerinden kaçınınız.

Benim verdiğim örnek kodda gördüğünüz 'C' size C0001, C0002 gibi id değerleri üretiyor. 

CevapAlıntı
Gönderildi : 04/06/2011 04:56
Paylaş: