Makale Özeti

SQLO ve SQLi yerine kullanabileceğimiz yapı : SQLCMD hakkında genel bilgi...

Makale

Bazen MS SQL Management Studio gibi görsel araçlar bulunmaz elimizin altında. Bu durumda T-SQL komutları veya batch job ları çalıştırabilmek için MS SQL Server 2005 tarafından sunulan hizmettir sqlcmd...

Sqlcmd bizlere T-SQL komutlarını, scriptleri ve zamanlanmış batch job ları çalıştırabilmek için gerekli altyapıyı sağlar.

MS SQL Server 2005 sqlcmd ve osql'i destekler yapıdadır lakin bundan sonraki verisyonlarda osql'in bulunmayacağını göz önüne alarak sqlcmd'yi kullanmanızı öneririm.

Sqlcmd ile çalışabilmek için yapmanız gereken sadece Start>All Programs>Accecories>Command Prompt ekranını açmak veya daha kısa yolla Start>Run kısmına cmd yazmak ve enter a basmaktır.

Şimdi Sqlcmd komutlarını incelemeye başlayalım kısaca. Burada bazılarını ee alacağız sadece lakin sizler daha fazlasını elde etmek için :help komutunu kullanabilirsiniz.

- GO
Yazılan sql command'ın çalışmasını sağlar. Şayet GO[n] şeklinde bir yapı kullanılırsa yazılan sql cümleciği "n" ile belirtilen sayı kadar ard arda çalıştırılır.

- RESET
Sqlcmd ekranını temizler

- EXIT
Sqlcmd ekranından çıkar klasik command prompt'a geri döner. Şayet EXIT (statement) yapısında kullanılırsa ekrandan çıkmadan önce "statement" olarak belirtilen kısma yazılan işlemi yerine getirir.

- !!cmd
İşletim sistemi komutlarının çalıştırılmasını sağlar. "!!" ifadesinden sonra klasik DOS komutları yazılabilir.

Örn:


- :r filename
Belirtilen dosya içeriğini okumaya yarar. Text tipteki dosya içeriğine belirteceğiniz select gibi ifadeleri bu metod sayesinde çalıştırabilirsiniz.

- :serverlist
Erişilebilir server listesini karşınıza getirir.

- :listvar
Düzenlenmiş variable listesini verir.

Örn:


- :help
Kısa açıklamalar ile beraber sqlcmd komutlarını listeler.

SQLCMD Parametreleri
 

sqlcmd
   [-?]  |  [-L[c]] |
   [
      {
         {-U login_id [-P password]} | –E
      }
      [-S server_name[\instance_name]] [-H wksta_name] [-d db_name]
      [-l time_out] [-t time_out] [-h headers]
      [-s col_separator] [-w column_width] [-a packet_size]
      [-e] [-I]
      [-c cmd_end] [-q "query"] [-Q "query"]
      [-m error_level] [-r [0 | 1]]
      [-i input_file[,file2…]] [-o output_file] [-p[1]]
      [-b] [-u] [-R] [-v var="value"[var="value"…]][-A] [-X[1]]
      [-V severitylevel]
   ]

SQLCMD Örnekleri

Örnek 1:
AdventureWorks veritabanı üzerinde "select" işlemi yapalım



Örnek 2: Veritabanı listesini ekrana getirelim



Örnek 3: Hazırlayacağımız ve text olarak kaydedeceğimiz bir template e SQLCMD ile parametre göndermek ve çalıştırmak. Bunun için C:\ 'ye bir template sql cümleciği kaydedeceğiz. Daha sonra sqlcmd ile bu sql cümleciğini çalıştıracak ve parametre göndereceğiz. Template'imiz şu şekilde olsun.

Deneme.sql içeriği

Select top 4 $(Alan_Adi)
from $(Tablo_Adi)
GO



Örnek 4: Sql cümlemizi bir text dosyaya yazalım ve sonucu aynı yere başka bir text dosyaya çıktı olarak vermesini sağlayalım.





Bir sonraki makalemiz SMO ile alakalı olacak.



Evren AYAN
Microsoft MVP
http://www.evrenayan.net