none
2 Ayrı datebase den veri çekmek RRS feed

  • Soru

  • Merhaba 2 tane databese var elim de 2014 ve 2015 adında 2014 de çalışan 2015 de çalışmayan müşterilerimi karşılaştırma yapmak istiyorum sql üzerinde 2 ayrı database den join yapar gibi veri çekebilirmiyim ?
    19 Mart 2015 Perşembe 12:54

Yanıtlar

  • Evet. Ikisine de erisme yetkisi olan bir hesapla baglanti yaptigini var sayarsak:

    select * from db2014..tableName
    where not exists 
    (select * from db2015..tableName where ...)
    Not: "4 part naming" ile server.database.schema.tableName seklinde ulasabilirsin.
     

    • Yanıt Olarak İşaretleyen Burak ORDU 23 Mart 2015 Pazartesi 08:45
    19 Mart 2015 Perşembe 13:04
  • Çetin Hoca'nın söylediğine ek olarak Linked Server diye aratırsan farklı serverlarda ki databaseleride kullanabilirsin.

    Veysel Bey,

    EF ile nasıl kolay onu anlamadım ben. Sizin her yılın database'i farklıdır. Yani her yıl o databasede üstüne ya tablolar eklenmiştir çıkarılmıştır falan filan. Üstüne geçmiş yılların databaseleride olabilir(10 yıl öncesinin dahi olabilir). Siz bu databaselerin hepsi için ayrı model ve context mi oluşturacaksınız? Bence hangi EF yaklaşımını kullanırsanız kullanın bu ef ile çözülmesi zor bi durum. Onun içindir bu gibi durumlarda sp yazılması tavsiye ediliyor. Burada benim kaçırdığım nokta ne tam olarak? Çünkü ben EF ile böyle bir yapıyı tasarlayamıyorum kafamda...


    • Düzenleyen Berdann 19 Mart 2015 Perşembe 13:57
    • Yanıt Olarak Öneren CetinBasoz 19 Mart 2015 Perşembe 16:00
    • Yanıt Olarak İşaretleyen Burak ORDU 23 Mart 2015 Pazartesi 08:45
    19 Mart 2015 Perşembe 13:56

Tüm Yanıtlar

  • Entity Framwork ile yaparsan 

    2014 den gelen sonuçları bir List<> e çekersin

    2015 i de bir List<> e çekersin

    ondan sonra Linq To Sql expression la olur

    EF İle çok kolay

    Ama normal sqlconnectionlarla yapcaksan

    Dönen kayıtları için özel bir tip oluşurup

    List<Tipin> şeklinde bir liste aktararak da olur 

    ama biraz uğraşırsın


    site : http://www.veyselkaranitekgoz.com
    facebook : https://www.facebook.com/veyselkaranitekgoz?fref=ts youtube : https://www.youtube.com/c/VeyselKaraniTEKG%C3%96Z

    19 Mart 2015 Perşembe 13:02
  • Evet. Ikisine de erisme yetkisi olan bir hesapla baglanti yaptigini var sayarsak:

    select * from db2014..tableName
    where not exists 
    (select * from db2015..tableName where ...)
    Not: "4 part naming" ile server.database.schema.tableName seklinde ulasabilirsin.
     

    • Yanıt Olarak İşaretleyen Burak ORDU 23 Mart 2015 Pazartesi 08:45
    19 Mart 2015 Perşembe 13:04
  • Çetin Hoca'nın söylediğine ek olarak Linked Server diye aratırsan farklı serverlarda ki databaseleride kullanabilirsin.

    Veysel Bey,

    EF ile nasıl kolay onu anlamadım ben. Sizin her yılın database'i farklıdır. Yani her yıl o databasede üstüne ya tablolar eklenmiştir çıkarılmıştır falan filan. Üstüne geçmiş yılların databaseleride olabilir(10 yıl öncesinin dahi olabilir). Siz bu databaselerin hepsi için ayrı model ve context mi oluşturacaksınız? Bence hangi EF yaklaşımını kullanırsanız kullanın bu ef ile çözülmesi zor bi durum. Onun içindir bu gibi durumlarda sp yazılması tavsiye ediliyor. Burada benim kaçırdığım nokta ne tam olarak? Çünkü ben EF ile böyle bir yapıyı tasarlayamıyorum kafamda...


    • Düzenleyen Berdann 19 Mart 2015 Perşembe 13:57
    • Yanıt Olarak Öneren CetinBasoz 19 Mart 2015 Perşembe 16:00
    • Yanıt Olarak İşaretleyen Burak ORDU 23 Mart 2015 Pazartesi 08:45
    19 Mart 2015 Perşembe 13:56
  • Linked server hatirlattigin iyi oldu :) O zaman sadece farkli server degil ayni zamanda farkli databaselerden saglayicilarindan da (PostgreSQL, Oracle, MySQL ...) query yapmak mumkun (OpenRowSet ... gibi secenekler de var).
    19 Mart 2015 Perşembe 16:04