SQL Server Komut Satırı Kullanımı (cmd)

SQL Server ‘a komut satırı ile bağlantı kurup ana süreçlerimizi oradan nasıl yürütebileceğimizi bu makelemizde sizlere aktarmış olacağız.

1.Komut Satırı Üzerinden Bağlantı Sağlama ve Ana süreçleri Gerçekleştirme

Sqlcmd -S  SQLTR -U sqltradmin sorgusnu incelediğimiz de ; -S : Server Adını belirttiğimiz bölüm, -U ise kullanıcı ismini belirttiğimiz bölüm. Bu işlemden sonra Password bilgisini bizden isteyecek fakat girerken Password bilgisini istemesini istemiyorsak direkt sorgumuzu ;

Sqlcmd -S  SQLTR -U sqltradmin -P klsjkdnkd diye de yapıp giriş sağlayabiliriz SQL Server ‘a.  Ama biz Pass bilgisini bize sormasını istediğimizden ilk query ile Connection kuracağız.

Giriş işlemini başarılı yaptıktan sonra hangi Db üzerinde olduğumuzu sorgulayalım.

SELECT DB_NAME()
GO

Bağlantı kurduğumuz Instance üzerinde ki DB lerin neler olduğunu görelim.

select name from sys.databases
go

ya da

Sp_databases
Go

komutu ile de bu bilgiyi çekebiliriz.

Komut Satırı üzerinden SQL Server Versiyonu sorgulama ,

SELECT SERVERPROPERTY('EDITION')
GO

Ayarlanan tüm değişkenleri listelemek için :ListVar komutunu çalıştırmanız yeterlidir.

:ListVar

 

Bu bölümde bir sql dosyamızı çalıştırıp sonucu bir text file a aktaracağız komut satırı üzerinden. Sonr abu aşamadan sonra da DB nin Full Backup ını alacağız.

Kendi ortamımda D klasörü altında Columns.sql adında bir SQL dosyası oluşturuyorum ve bu dosyanın içerisine de aşağıda ki scripti ekliyorum.

select * from adventureworks2016.information_schema.columns

AdwantureWorks2016 veritabanımız içerisinde ki tüm kolon bilgilerini almamızı sağlıyor bu query. Şimdi ise D Diskinde SQL Klasörünün altına eklediğimiz bu .sql uzantılı script file ımızı çalıştırıp çıktısını farklı bir dosyaya nasıl atarız onu göreceğiz.

Bu .sql uzantılı dosyayı EXEC edip çıktısını Exit.txt olan bir dosyaya atalım.

Sqlcmd -S SQLTR -E -i D:\SQL\columns.sql -o D:\SQL\Exit.txt

Scriptimizi incelediğimizde columsn.sql dosyasını EXEc edip output unuda Exit.txt dosyasına atmasını sağladık.

 

Şimdi ise veritabanımızın Backup ‘ını alalım ,

D:\SQL\BACKUP path I altında Backup_Script.sql file ı bulunmaktadır. Bu File ın içerisinde aşağıda ki Backup alma Scripti vardır.

BACKUP DATABASE [SQLTURKIYE] TO  DISK = N'D:\SQL\BACKUP\SQLTURKIYE_Full_Backup.bak'
GO

Scriptimizi komut satırından çağırıp çıktısınıda BackupOutput.txt adlı bir dosyaya basmasını sağlayalım.

Sqlcmd -S SQLTR -E -i D:\SQL\BACKUP\BAckup_Script.sql -o D:\SQL\BACKUP\BackupOutput.txt

Script sonucunda ilgili Path imiz içerisinde hem veritabanımızın Full Backupo ‘ı alınmıştır .bak uzantılı olan hem de çıktısını logladığımız tablo oluşmuştur. Logladığımız tablonun içeriğine bakacak olur isek ,

Backup ın başarılı alındığını logumuzda da görmekteyiz.

Soru 1 : Komut Satırını Kullanarak AdvantureWorks2016 veritabanı içerisinde yer alan tabloları bir text file basan işlemi nasıl yaparız ?

 

SQL Server Management Studio you Komut Satırı Modunda Çalıştırmak

SSMS üzerinde CMD Mode Kullanımı için Query altında SQLCMD Mode sekmesini seçmeniz gerekmektedir.

Şimdi bir örnek gerçekleştirelim.

Variable ile komut satırında DB Create etmek istediğimizde ,

:SETVAR DATABASENAME "SQLTurkiye_Demo"
create database $(DATABASENAME); GO

yukarıda ki komutu kullanmamız yeterli. Peki bu komutu SSMS üzerinde çalıştırarak SQLTURKIYE_Demo veritabanımızı oluşturmak istediğimizde ise ,

:SETVAR DATABASENAME "SQLTurkiye_Demo"
create database $(DATABASENAME);
GO

yukarıd aki gibi Query penceremize Query mizi yazdıktan sonra Query altında SQLCMD Mode u seçiyoruz.

Daha sonra EXEC yapıyoruz ve aşağıdaki gibi Success olduğunu işlemimizin görüyoruz.

Bu işlemden sonra Databases altında Db mizi kontorl ettiğimizde oluştuğunu görüyoruz.

 

PowerShell i Kullanarak SQLCMD yi Çağırma

sqlps yi çağırıyoruz ve daha sonra Sql Server PowerShell ekranı karşımıza gelmekte.

SQLPS Ekranı

Şimdi ise Powershell üzerinden sqlcmd yi çağırıp query mini EXEC edelim.

PowerShell ile dosya içerisinde ki Query EXEC edip çıktısını Text File a yazmak için ;

Invoke-Sqlcmd -inputfile D:\SQL\Frag\Fragmentation_Script.sql | Out-File -FilePath "D:\SQL\frag\"Frag_OutPuts.txt"

EXEC edeceğimiz Fragmentation_Script dosyasıD:\SQL\Frag Path inin altında yer almaktadır.Aynı Path içerisine Frag_OutPuts.txt dosyasıda EXEc den sonra oluşup Query çıktısnı oraya basacak şekilde yukarıda PowerShell Scriptimizi hazırladık.

Şimdi Query mizi EXEC edelim PowerShell üzerinde ,

İşlemden sonra File ımızı kontorl ediyoruz.

Gördüğünüz üzere Output umu yazdığım dosya da oluşmuş klasörün altında. İçerisine bakıp teyid edelim .

İşlemi başarılı bir şekilde yaptığını görmekteyiz. EXEC ettiğimiz file ın içerisinde ise ,

DECLARE @db_id SMALLINT=DB_ID('AdventureWorks2016');  
DECLARE @object_id INT=OBJECT_ID(N'AdventureWorks2016.Person.Address');
 
SELECT * FROM sys.dm_db_index_physical_stats(@db_id, 
@object_id, NULL, NULL , 'LIMITED');  
GO

Scriptimiz yer almaktadır. Bu script ile Tablo üzeirnd eki Index lerin Fragmantasyon değerleri alıyoruz.

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *