SQL Script Dosyalarını Toplu Çalıştırma (OSQL – SQLCMD)

İçerisinde SQL Script’lerin bulunduğu metin dosyalarını komut satırında çalıştırmak için en iyi yöntem OSQL veya SQLCMD programcıklarını kullanmaktır (SQL Server Command Line Tool). Bilindiğim gibi bu araçlar Command Prompt’tan SQL Sunucusuna erişmeyi sağlayıp sorgu çalıştırmamıza imkan tanır. OSQL aracı SQL 2000’den beri kullanılmakta. SQL Server 2005 ile birlikte SqlCmd aracı sunuldu. Aşağıdaki ekranda bu komutların parametreleri görülmektedir.


Temelde aynı özellik ve amaca sahip görünse de SqlCmd daha gelişmiş bir araçtır.

Bu araçların “i” parametresi kullanarak bir metin dosyasındaki scriptleri SQL sunucu üzerinde çalıştırabiliriz.
SqlCmd -S Server\instanceName -i C:\ScriptDosya.sql
Input olarak verilmiş sorguları bu şekilde çalıştırabiliriz. Aynı şekilde sorgu sonucunu output olarak bir dosyaya yazdırmak için de “o” parametresi kullanılır.
SqlCmd -S Server\instanceName -i C:\ScriptDosya.sql -o C:\Liste.txt

SQL Script Dosyalarını Toplu Çalıştırma (OSQL – SQLCMD)” hakkında 3 yorum

  1. Hasan Arslan

    Merhabalar;
    Ben Sql Server 2014 üzerinde Lksdbnew datasında bazen delete dlg_netlock querysini çalıştırıp tablonun içini silmem gerekiyor. Tabi bunun için de sql ye girmem lazım. Bu işlemi bir bat dosyasıyla nasıl yapabilirim?
    sql cmd ile..

    Cevapla
  2. Ahmet Kaymaz Yazar

    Merhaba Hasan Bey,

    örnek olarak C:\Dosya\Sorgu.sql dosyası oluşturun. Bu dosyanın içerisine aşağıdaki cümleyi yazın.

    DELETE dlg_netlock

    Ardından bir batch dosyası oluşturun içerisine SQLCMD’nin pathini yazarak parametrelerini girebilirsiniz. Örnek olarak aşağıdaki satırları girmeniz yeterli olacaktır.

    echo off
    C:\Program Files\Microsoft SQL Server\120\Tools\Binn\SQLCMD.EXE -E -S SUNUCU_ADI -i C:\Dosya\Sorgu.sql

    Buradaki -E parametresi default authentication’ı temsil etmektedir eğer kullanıcı adı ve şifre girecekseniz -U ve P parametrelerini kullanabilirsiniz.

    http://technet.microsoft.com/en-us/library/ms162773.aspx

    Cevapla
  3. serkan

    osql -s pckullanıcı -E
    1> sp_password NULL,’1234’,’sa’
    2> go
    komut başlangıcında 1 ve 2 otomatik gelmesini nasıl sağlarım
    1 ve 2 vseçeneği her zaman girilmesini istemiyorum

    Cevapla

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir