Merhabalar, bu yazımı karşılaştığım ve çözmek için çok zaman harcadığım bir hatadan esinlenerek yazıyorum.
Hata tam olarak şu; MSSQL veritabanıma bir içerik(text) girerken, içerisindeki Türkçe karakterleri İngilizce karakter olarak kaydediyor.
Hatanın çözümünü ise iki farklı yöntemle buldum.
1.Yöntem
Uyarı: Bu işlem her zaman çalışmıyor. Test edildi.
- Veritabanının(database) özelliklerine(properties) giriyoruz.
- Açılan pencerede ayarlar(options) sayfasına tıklıyoruz.
- Collation kısmındaki seçimden Turkish_CI_AS’ı seçiyoruz.
- Recovery model seçiminden ise Full’ü seçiyoruz.
- Ok diyerek kaydediyoruz.
2.Yöntem
1. yöntemin derinlere inerek hatamızı çözebiliriz.
Uyarı: Bu işlem büyük projelerde oldukça zaman alacaktır.
- Öncelikle hatanızı aldığınız tabloya sağ tık yapıp “Desing” seçeneğini tıklayın.
- Ardından hangi alanda hata varsa o sutünun “Column Properties” penceresine geliyoruz.
- “Table Designer” menüsünün altında bulunan “Collation” kısmına gelip seçim için üç noktaya(…) tıklıyoruz.
- Açılan pencerede “Windows Collation” seçeneğini aktifleştiriyoruz.
- Hemen altından bulunan listeden “Turkish” seçeneğini seçiyoruz.
- Ardından “Dictionary Sort” seçeneğini aktif hale getiriyoruz.
- Alt tarafta çıkan seçimlerden sadece “Accent Sensitive” seçeneğini aktif hale getiriyoruz.
- Ok diyerek kaydediyoruz.
Resimli Anlatım
3. Yöntem
ALTER TABLE dbo.MyTable
ALTER COLUMN CharCol VARCHAR(50) COLLATE TURKISH_CI_ASNot: Bu yöntemi yorumla bildiren Erdem’e çok teşekkür ediyorum. Ancak bu yöntemi deneme imkanım olmadı. Eğer çalıştığından emin olursanız ve bunu yorumla veya iletişim adreslerimden bana iletirseniz, diğerlerine göre daha kolay olan bu çözümü ilk sıraya ekleyebilirim.
Hata hakkında daha iyi bir çözümünüz varsa yorum olarak veya iletişime geçip bildirirseniz, yazıyı güncelleyebilirim.
Bir yazımın daha sonuna geldik, bir sonraki yazımda görüşmek dileğiyle.
ALTER TABLE dbo.MyTable
ALTER COLUMN CharCol VARCHAR(50) COLLATE TURKISH_CI_AS
şeklinde basit bir komutla da yapabilirsiniz.
Deneyemedim ancak alternatif bir seçenek olabilir. Teşekkürler 🙂
Çok teşekkürler işe yaradı
Tebrikler eren ben yazılımcı murat bal gültepeden netde gezinirken web siten karşıma çıktı web siteni beğendim başarılarının devamını dilerim 🙂
Teşekkür ederim 🙂
Çok teşekkürler, yazınız şuan çok işime yaradı, asp net üzerinden insert ettiğim Türkçe karakterler veritabanına giden bütün kaydın iptal olmasına gitmemesine yol açıyordu, bu şekilde sorunu çözüm, ellerinize sağlık.
Merhaba Yusuf, problemini çözmesine çok sevindim. Teşekkür ederim 🙂
Dostum cok guzel aciklamissin tesekkurler. Ancak recover full secenegini(nerede) mysql workbench uzerinden nasil yapabiliriz?