Forum

Sql hakkında sorum ...
 
Bildirimler
Hepsini Temizle

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

10 Yazılar
3 Üyeler
0 Likes
446 Görüntüleme
(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

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 ? 

 
Gönderildi : 31/05/2011 23:41

(@cozumpark)
Gönderiler: 16309
Illustrious Member Yönetici
 

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

 
Gönderildi : 01/06/2011 00:48

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

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 ? 

 
Gönderildi : 01/06/2011 01:04

(@cozumpark)
Gönderiler: 16309
Illustrious Member Yönetici
 

Ç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.

 
Gönderildi : 01/06/2011 02:29

(@kadiravci)
Gönderiler: 202
Üye
 

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

 
Gönderildi : 01/06/2011 03:47

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

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

 
Gönderildi : 01/06/2011 11:56

(@cozumpark)
Gönderiler: 16309
Illustrious Member Yönetici
 

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

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. 

 
Gönderildi : 01/06/2011 13:38

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

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

 
Gönderildi : 01/06/2011 19:27

(@cozumpark)
Gönderiler: 16309
Illustrious Member Yönetici
 

Şö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.

 
Gönderildi : 02/06/2011 01:18

(@kadiravci)
Gönderiler: 202
Üye
 

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. 

 
Gönderildi : 04/06/2011 04:56

Paylaş: