Açıklama


Süreç dizayn ekranında mevcut bir veritabanı şemasını import etmek için import butonuna basıldığında, şemalar listelenmeyip "An item with the same key has already been added" şeklinde bir hata alıyorsanız, şemadaki tablolardan birinde bir kolon ismi birden fazla kez kullanılmış olabilir. Bu sorunu gidermek için çoklanan kolon bulunup şemadan silinmelidir.


Çözüm


Bu sorunu çözmenin şimdilik en kısa yolu, problemin hangi şemadan kaynaklandığını bulmak için deneme yanılma yöntemiyle şemaları eleyerek ilerlemek. Öncelikle aşağıdaki adımları takip ederek sorunlu şemaları kopyalayıp yeniden yaratacak script'i elde ediniz:

  • Sorunun yaşandığı veritabanına sağ tıklayıp Tasks->Generate Scripts görevi açılır,
  • Listeden Schemas tablosu seçilir,
  • Sonraki adımda Advanced butonuna basılır,
  • Açılan pencerede "Types of data to script" seçeneği için "Schema and data" seçilip script'in kaydedileceği yer belirlendikten sonra işlem tamamlanır.


Bu noktadan sonra elde ettiğiniz script ile sorunlu olan şemaları istediğiniz SQL veritabanında yeniden oluşturarak problemi gözlemleyebilirsiniz. Bu çalışmayı kendi makinenizde veya test amaçlı kurulmuş bir Emakin makinesinde yapmanız tavsiye edilir. Çalışmayı kendi makinenizdeki Emakin üzerinde yapacağınızı varsayarak, aşağıdaki adımları takip edip sorunlu şemayı bulabilirsiniz:

  • Kurulu Emakin tarafından kullanılan Schemas tablosunun adı değiştirilerek yedek olarak tutulur,
  • Önceki kısımda elde ettiğiniz script ile sorunlu şemaları içeren Schemas tablosu oluşturulur,
  • Emakin arayüzünde herhangi bir süreç designer'ında Database kısmına gelerek import butonuna basıp sorunun oluşup oluşmadığı gözlemlenir, sorun oluşuyorsa buraya kadar olan adımlar yerine getirilmiş demektir,
  • SQL üzerinden Schemas tablosundaki şemalar küçük gruplar halinde silinir, örnek olarak beşer beşer,
  • Silinen her beşlide designer sayfası refresh edilerek database import fonksiyonunun düzelip düzelmediği kontrol edilir, tabi bu arada sildiğiniz şemaların da isimlerini bir kenara yazmanız işinizi kolaylaştıracaktır,
  • Database import düzeldiği vakit son sildiğiniz beş şema içinde en az bir tane sorunlu şema var demektir. Bu beş şema içindeki tablo tanımları ve kolon isimleri kontrol edilir,
  • Çoklanan kolon bulunup incelendikten sonra gereksiz olan silinip Schemas tablosu bu şekilde update edilir,
  • Sorunun giderildiği kontrol edildikten sonra çalışmaya başlamadan önce yedek olarak ismini değiştirdiğiniz tablonun ismi eski haline getirilir,
  • En son olarak tespit edilen sorunlu kolon müşteri tarafındaki şemadan da silinir.