none
SQL Local Server ile Azure Server Bağlantısı RRS feed

  • Soru

  • Merhaba Arkadaşlar,

    Localdeki verilerimi Azure server ıma inser etmek istiyorum. Store Procedure lerimi hazırladım ama
    Localde iken Azure serverına insert edemedim (veya Azurdan iken localden select edebiliriz)

    Bu konuda yardımcı olabilir misiniz?


    ynstek

    26 Şubat 2016 Cuma 09:59

Yanıtlar

  • Linked server olarak ekleyip yapabilirsin:

    insert into [azureserver].[databaseName].[schema].[table] 
      (< alanlar >) 
    select  < alan listesi > from ...


    • Yanıt Olarak İşaretleyen Serkan Canseven 29 Şubat 2016 Pazartesi 08:36
    • Yanıt İşaretini Geri Alan Yunus Tek 1 Mart 2016 Salı 08:53
    • Yanıt Olarak İşaretleyen Yunus Tek 1 Mart 2016 Salı 09:19
    26 Şubat 2016 Cuma 10:39
  • Sanırım Mehmet Bey c# üzerinden bağlantı kurmayı anlatıyor.
    Yapmak istediğim Sql üzerinde query ile iki server arasında bağlantı kurmak. Sanırım Linked server bunun için doğru seçenek ama henüz çalıştıramadım.

    Linked Server ımı şu şekilde kurdum:
    EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_AZURE', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'gr4u4soxfk.database.windows.net,1433', @catalog=N'IpadTest_db'
    EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LINKED_AZURE',@useself=N'False',@locallogin=NULL,@rmtuser=N'melis',@rmtpassword='######'

    ve şu şekillerde kullanmaya çalıştım:

    1) Select * From Openquery(LINKED_AZURE,'select * From Customer')
    hata:
    OLE DB provider "SQLNCLI11" for linked server "LINKED_AZURE" returned message "Deferred prepare could not be completed.".
    Statement(s) could not be prepared.
    Invalid object name 'SalesLine'.

    2) Select * From [OrcaIpadTest_db].[OrcaIpadTest].[SalesLine]
    hata:
    Invalid object name 'IpadTest_db.IpadTest.SalesLine'.



    ynstek

    Sorunu çözdüm shema yazmadığım için çalışmıyormuş bu şekilde çalıştı.

    Select * From Openquery(LINKED_AZURE,'select * From IpadTest.[SalesLine]');
    • Düzenleyen Yunus Tek 1 Mart 2016 Salı 09:18
    • Yanıt Olarak İşaretleyen Yunus Tek 1 Mart 2016 Salı 09:19
    1 Mart 2016 Salı 09:05
  • Nacizane blog yazım :)
    http://www.yunustek.com/sql-local-server-ile-azure-server-baglantisi-linked-server-kullanimi-query.html/

    ynstek

    • Yanıt Olarak İşaretleyen Yunus Tek 1 Mart 2016 Salı 09:56
    1 Mart 2016 Salı 09:55
  • Mesaji takip et. sys.serversda yok diyor. Ikisinde farkli seyler kullanmissin zaten. insert into [LINKED_AZURE].... olacakti.

    Olmadiysa niye blog yazdin ki :) Linked server kullanmak icin OpenQuery sart degil. Normal gosterdigim gibi kullanabilirsin:

    select * from [LINKED_AZURE].[dbName].[IpadTest].[SalesLine];

    • Düzenleyen CetinBasoz 1 Mart 2016 Salı 13:27
    • Yanıt Olarak İşaretleyen Yunus Tek 1 Mart 2016 Salı 13:49
    1 Mart 2016 Salı 13:23

Tüm Yanıtlar

  • Linked server olarak ekleyip yapabilirsin:

    insert into [azureserver].[databaseName].[schema].[table] 
      (< alanlar >) 
    select  < alan listesi > from ...


    • Yanıt Olarak İşaretleyen Serkan Canseven 29 Şubat 2016 Pazartesi 08:36
    • Yanıt İşaretini Geri Alan Yunus Tek 1 Mart 2016 Salı 08:53
    • Yanıt Olarak İşaretleyen Yunus Tek 1 Mart 2016 Salı 09:19
    26 Şubat 2016 Cuma 10:39
  • Bunu denedim ama olmadı veya sanırım ben yapamadım.

    Select * FROM [gr4u4soxfk.database.windows.net,1433].[IpadTest_db].[IpadTest].[SalesLine]

    Şu hatayı alıyorum:

    Could not find server 'gr4u4soxfk.database.windows.net,1433' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.


    ynstek

    26 Şubat 2016 Cuma 12:33
  • Linked server eklememissin ki, sys.server'da bulamadim diyor zaten.
    26 Şubat 2016 Cuma 15:25
  • Bunu denedim ama olmadı veya sanırım ben yapamadım.

    Select * FROM [gr4u4soxfk.database.windows.net,1433].[IpadTest_db].[IpadTest].[SalesLine]

    Şu hatayı alıyorum:

    Could not find server 'gr4u4soxfk.database.windows.net,1433' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.


    ynstek

    Select yazarken sunucu adını eklemenize gerek yok. Normalde nasıl yapıyorsanız öyle yapın. Yani sorgudaki xxxx.database.windows.net ile ilgili bölümü silin. 

    Ek olarak AzureSQL'ler normalde dışarıdan erişime kapalı gelir. Firewall üzerinden ya tüm dünyaya açın yada statik ipniz var ise sadece kendi ipnize izin verin.  

    Ek olarak bu link yardımcı olacaktır; 
    https://azure.microsoft.com/tr-tr/documentation/articles/sql-database-dotnet-how-to-use/

    26 Şubat 2016 Cuma 17:52
  • Select yazarken sunucu adini silsin mi???? O zaman baglandigi database ile azure'daki database'in farkini nasil bildirecek? Tam bir ornek yazabilir misiniz?

    Normal SQL server kurulumlari da disariya kapali oluyor diye biliyorum.

    26 Şubat 2016 Cuma 18:00
  • Select yazarken sunucu adini silsin mi???? O zaman baglandigi database ile azure'daki database'in farkini nasil bildirecek? Tam bir ornek yazabilir misiniz?

    Normal SQL server kurulumlari da disariya kapali oluyor diye biliyorum.

    Evet sunucu adı silecek. Sunucu ile bilgiler connection string de olur. Siz zaten database bağlantıktan sonra Select cümlelerinizde sadece tablo adı kullanmanız gerekiyor. Aşağıdaki linkte detaylı olarak anlatılmış ;

    https://azure.microsoft.com/tr-tr/documentation/articles/sql-database-dotnet-how-to-use/

    27 Şubat 2016 Cumartesi 14:00
  • Iyi de connection stringde baska bir server ve database adi zaten var, nasil olacak anlamadim dogrusu. Verdiginiz linkte de oyle bir sey gostermiyor.

    27 Şubat 2016 Cumartesi 14:03
  • Sanırım Mehmet Bey c# üzerinden bağlantı kurmayı anlatıyor.
    Yapmak istediğim Sql üzerinde query ile iki server arasında bağlantı kurmak. Sanırım Linked server bunun için doğru seçenek ama henüz çalıştıramadım.

    Linked Server ımı şu şekilde kurdum:
    EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_AZURE', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'gr4u4soxfk.database.windows.net,1433', @catalog=N'IpadTest_db'
    EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LINKED_AZURE',@useself=N'False',@locallogin=NULL,@rmtuser=N'melis',@rmtpassword='######'

    ve şu şekillerde kullanmaya çalıştım:

    1) Select * From Openquery(LINKED_AZURE,'select * From Customer')
    hata:
    OLE DB provider "SQLNCLI11" for linked server "LINKED_AZURE" returned message "Deferred prepare could not be completed.".
    Statement(s) could not be prepared.
    Invalid object name 'SalesLine'.

    2) Select * From [OrcaIpadTest_db].[OrcaIpadTest].[SalesLine]
    hata:
    Invalid object name 'IpadTest_db.IpadTest.SalesLine'.



    ynstek

    Sorunu çözdüm shema yazmadığım için çalışmıyormuş bu şekilde çalıştı.

    Select * From Openquery(LINKED_AZURE,'select * From IpadTest.[SalesLine]');
    • Düzenleyen Yunus Tek 1 Mart 2016 Salı 09:18
    • Yanıt Olarak İşaretleyen Yunus Tek 1 Mart 2016 Salı 09:19
    1 Mart 2016 Salı 09:05
  • Nacizane blog yazım :)
    http://www.yunustek.com/sql-local-server-ile-azure-server-baglantisi-linked-server-kullanimi-query.html/

    ynstek

    • Yanıt Olarak İşaretleyen Yunus Tek 1 Mart 2016 Salı 09:56
    1 Mart 2016 Salı 09:55
  • Linked server olarak ekleyip yapabilirsin:

    insert into [azureserver].[databaseName].[schema].[table] 
      (< alanlar >) 
    select  < alan listesi > from ...



    Bu şekilde insert edemedim Çetin bey Select i şu şekilde kullandım oldu:

    Select * From Openquery(LINKED_AZURE,'select * From IpadTest.[SalesLine]');
    

    Insert için dediğiniz gibi yaptım ama olmadı:

    INSERT INTO [gr4u4soxfk.database.windows.net,1433].[orcaIpadTest_db].[orcaIpadTest].[Name] (name)
    SELECT city From [dbo].Azure_Categories

    hata:
    Could not find server 'gr4u4soxfk.database.windows.net,1433' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.



    ynstek

    1 Mart 2016 Salı 13:02
  • Mesaji takip et. sys.serversda yok diyor. Ikisinde farkli seyler kullanmissin zaten. insert into [LINKED_AZURE].... olacakti.

    Olmadiysa niye blog yazdin ki :) Linked server kullanmak icin OpenQuery sart degil. Normal gosterdigim gibi kullanabilirsin:

    select * from [LINKED_AZURE].[dbName].[IpadTest].[SalesLine];

    • Düzenleyen CetinBasoz 1 Mart 2016 Salı 13:27
    • Yanıt Olarak İşaretleyen Yunus Tek 1 Mart 2016 Salı 13:49
    1 Mart 2016 Salı 13:23
  • Mesaji takip et. sys.serversda yok diyor. Ikisinde farkli seyler kullanmissin zaten. insert into [LINKED_AZURE].... olacakti.

    Olmadiysa niye blog yazdin ki :) Linked server kullanmak icin OpenQuery sart degil. Normal gosterdigim gibi kullanabilirsin:

    select * from [LINKED_AZURE].[dbName].[IpadTest].[SalesLine];


    böyle kullandım ama database ismini yanlış yazdığım için olmadı sanmışım :)
    insert'ü denemeden yazdım bloğu baktım ki çalışmıyor bu kadarı kalsın gerisini çözünce yazarım dedim :) yazılım günlüğü olarak kullanıyorum öğrendiğimi hemen ekliyorum. Ama tam öğrenmeden eklememeliyim bunu anladım.
    Teşekkür ederim.


    ynstek

    1 Mart 2016 Salı 13:55
  • Hocam bu defa da "TRUNCATE TABLE" ı kullanamıyorum :)  Bu şekilde hata veriyor ama
    biraz araştırdım başka bir yolu yoksa aşağıdaki şekilde hata vermeden hızlı çalışıyor:

    — Truncate the acuheader table
    EXEC('TRUNCATE TABLE [Test_DB].dbo.thisTable') AT [Link-Server]


    ynstek

    2 Mart 2016 Çarşamba 14:17