Forum
Merhaba,
Oluşturduğum tablodaki kolona girilen bir değerin aynısının bidaha girilmemesini nasıl sağlayabiliriz?
Bunun için Primary Key i kullanıyorum fakat bu özellik sadece 1 kolona verilebiliyor ben toplamda 3 kolona da aynı özelliği vermek istiyorum, bu nasıl mümkün olabilir?
Kolon tipi nedir ? Numerıc, text...
Değerlerin uniq mi olmasını istiyorsun. Eğer numerik ise, desciption- identity tanımı ile de yapabilirsin...
Değer numerıc. Bu kolona girilen bir değerin birdaha girilmemesini, eğer girilirse hata vermesini istiyorum istiyorum.
Bahsettiğiniz tanımı nereden yapabilirim biraz daha açabilirmisiniz? (sql 2000)
Sql'de yer alan databesin table'ı gördüğünde, sağ taraftaraki table sağ tuş yap ve design table de. Buradaki istediğin sütunun datatype'na bas. En aşağıda identity göreceksin bu aktif olur; eğer nümerik ise. Bunu yes Not for replication yapabilirsin. Fakat database boş iken yap, silebilir...
Bu kolonda müşteri kart kodlarını tutuyoruz ve sayılardan oluşuyor.Ama excel e attığımızda sayıların başına tırnak işareti atıyor, bu sayıların farklı biçimde olduğunu mu gösterir?
Söylediğiniz gibi yaptım fakat datatype'de ( identity ) yok. Şu anda seçili olan varchar.
Varchar da olmaz hocam, numerik olması lazım. Yazı mı içeriyor sayı mı o konuda bir anlaşalım...
Sayı içeriyorsa varchar yerine bigint de kullanabilirsin. Dediğim gibi database boşken...
Kolonların üçünüde seçerek aynı anda Primary Key yapabilirisiniz ama bu sizin işinizi çözmez.
create table Benzersiz
(
BenzersizID varchar(50) unique not null,
KisiID varchar(50) unique not null,
Adi varchar(50) ,
Soyadi varchar(50)
)
Bu şekilde oluşturacağınız bir Query ile istediğinizi gerçekleştirebilirisiniz.Bu query ne işe yarar :
create table Benzersiz - Benzersiz isminde bir tablo oluşturuyoruz
(
BenzersizID varchar(50) unique not null, - BenzersizID isminde bir atama yapıyoruz ve hem benzersiz hemde boş geçilememe özelliği veriyoruz ve max uzunluğunu belirliyoruz
KisiID varchar(50) unique not null, - Kişi ID isminde bir atama yapıyoruz ve hem benzersiz hemde boş geçilememe özelliği veriyoruz ve max uzunluğunu belirliyoruz
Adi varchar(50) , Adi isminde bir atama yapıyoruz ve max uzunluğunu belirliyoruz
Soyadi varchar(50) Soyadi isminde bir atama yapıyoruz ve max uzunluğunu belirliyoruz
)
Bu Query yi çalıştırdığımızda tablomuzun oluştuğunu göreceksiniz.
O kolonda sayı içeriyor fakat kullandığımız ara program onu yazıya çeviriyor olabilir çünkü sayıların başına tırnak atıyor. Databaseyi boşaltıp söylediğiniz gibi yaptım fakat bukez de eski databasedeki verileri geri alamıyoruz
Sütunlar arasında bağlantı sorunu var bence. Biri text sanki diğer sayı gibi...
Nereden veri alıyorsunuz ? Excel ise onun hücre tipi de sayı mı ?
Önce excel e export yaptım, tablodaki tüm verileri sildim ve söylediğiniz gibi datatype yi bigint yaptım. Sonra import yapmaya çalıştım pakat hata verdi. Excel dosyasını açtım bahsettiğimiz kolondaki sayıların başında tırnak işareti var ve sanırım bu tırnak işareti verilerin numeric olmasını engelliyor. Ayrıca tırnak işaretini kaldırıp sayı olarak import etmemiz programımızda sorunlara yol açacağını düşünüyorum. Önceki haliyle birşeyler yapamaz mıyız?
Excel'de veri içeren hücrede F2 ye basıp yani hücreye odaklanıp tırnağı silersen ve o hücre tipi de sayı olursa bir sorun olacağını düşünmüyorum...
Eski yöntemde biraz zor gibi...
Bahsettiğiniz şekilde 27000 in üzerinde satır var ve bunlardan o tırnakları silmek imkansız gibi.
Deneme olarak ilk 10 satırı yapsan nasıl olur...
Eğer çözüm olursa, makro ile diğer satırları hallederiz.
Sn. Sinan KAHRAMAN hocam sanırım yöntem sql 2000 de olmuyor.
SN. excalibur hocam söylediğiniz şekilde oldu. Artık aynı verileri alırken hata veriyor. Elinizde o tırnakları silebilecek bi makro varmı acaba?
Excalibur hocam baktım da bizim kullandığımız program yeni veri eklerken hata veriyor. Sanırım sorun kullandığımız ara programda
Sn. Sinan KAHRAMAN hocam
Söylediğiniz şekilde tobloyu oluşturdum fakat sıralama yaparken sayıya göre küçükten büyüğe değil de sayının ilk rakamına göre sıralama yapıyor.
Örneğin:
1
10
11
12
1235
1592
190012
2
20
21
... gibi.
Hocam postu takip edemedim kusura bakmayın. Yukarıda sayı temsil edilmediği için sıralama o şekilde oluyor. Şu anda ne aşamadasın ?