SQL Server Linked kullanımı(Farklı fiziksel SQL Serverda data ile bağlantı kurulması) ve sorgu işlemleri
SQL Linked , farklı fiziksel serverlarda ki veritabanına bağlantı kurulması için kullanılan bir özellik.Kullanmak ilk defa nasip oldu çok fazla işimi gördü . Öncelikle ana makinamızda ki sql de , 'Server Objects' menüsünde ki Linked Servera geliyoruz burada sağ tuş New Linked Server diyoruz . <img class="alignnone size-full wp-image-1497" src="https://erydogan.files.wordpress.com/2018/01/linked_1.jpg" alt="linked_1" width="251" height="271" /> Bir sonra ki ekranda bağlanılacak server ile ilgili ayarlamaları kayıt ediyoruz ; Linked Server :Bağlantıda kullanılacak isim ( herhangi bir şey olabilir ).Ancak sorgumuzu yazarken kullanılacak bağlantı ismi buradan belirleniyor . Provider : SQL için kullanılması gereken Microsoft OLE DB Provider for SQL Server Product Name : Burası zannediyorum verilecek isim . Bir önemini göremedim çünkü . Data Source : Bağlantı kuracağınız SQL Server ismi ya da Ip si olabilir . SQL e bağlantı kurduğunuzda servername yazan kısım denilebilir .( Network ayarları yapılı olması gerekiyor ) Catalog : Bağlanacağınız database ismi . <img class="alignnone size-full wp-image-1498" src="https://erydogan.files.wordpress.com/2018/01/linked1.jpg" alt="LİNKED1.JPG" width="709" height="618" /> Bir sonra ki işlemimiz Security tabında olacak . “Be made using this security context” i işaretleyip bağlantı kurulacak sql kullanıcı adı ve şifresini giriyoruz . Kayıt ediyoruz. <img class="alignnone size-full wp-image-1499" src="https://erydogan.files.wordpress.com/2018/01/linked3.jpg" alt="linked3.JPG" width="705" height="636" /> Bağlantı işlemimiz bu şekilde sağlanmış oluyor.Bir sonra ki adım yazılacak sorguda ki anahtar kelimeyi kullanmak kalıyor . Sorguda join ile sanki aynı serverda ki db deymiş gibi bağlantı kurmak aynı özellikleri kullanmak mümkün.. SELECT IT.CODE,ITM.CONVFACT1,MALZ.CONF1,ITM.CONVFACT2,MALZ.CONF2,LINENR,ITEMREF FROM LG_017_ITMUNITA ITM JOIN LG_017_ITEMS IT ON IT.LOGICALREF=ITM.ITEMREF JOIN ( SELECT * FROM Openquery(eraysrv,'SELECT IT.CODE malzkodu ,ITM.CONVFACT1 CONF1,ITM.CONVFACT2 CONF2,ITM.LINENR LINE FROM LG_002_ITMUNITA ITM JOIN LG_002_ITEMS IT ON IT.LOGICALREF=ITM.ITEMREF '))MALZ ON MALZ.malzkodu=IT.CODE AND MALZ.LINE=ITM.LINENR WHERE IT.CODE='RKP0180' <hr /> Burada Openquery ile açtığımız parantezde yazılacak isim bağlantıyı yaptığımızda 'linked server' adına yazdığımız isim oluyor. Örn( select * from openquery(eraysrv,)) Sorgu yazım şekli zaten aynı mantıktan oluşuyor . Kolay gelsin.
0 Yorum