sqlcmd komut dosyaları sorgu Düzenleyicisi ile düzenleme
Kullanarak Veritabanı AltyapısıSorgu Düzenleyicisi'nde SQL Server Management Studioyazabilir ve sorguları olarak sqlcmd komut dosyalarını düzenleme. Ne zaman sen-si olmak-e Windows sistem komutları işlemek sqlcmd komut dosyalarını kullanma ve Transact-SQLaynı JavaScript deyimleri
SQLCMD Modu
Kullanmak için Veritabanı Altyapısısorgu yazın veya sqlcmd komut dosyalarını düzenlemek için Editör sqlcmd komut modunu etkinleştirmelisiniz. Varsayılan olarak, sorgu Düzenleyicisi'nde sqlcmd modu etkin değil. Tıklatarak komut modunu etkinleştirebilirsiniz sqlcmd modu simgesi araç veya seçerek sqlcmd modu dan sorgu menü.
[!NOT]
sqlcmd etkinleştirme IntelliSense modunu kapatır ve Transact-SQLiçinde hata ayıklayıcı Veritabanı Altyapısısorgu Düzenleyicisi.
sqlcmd komut dosyaları sorgu Düzenleyicisi kullanarak aynı özellikleri, tüm Transact-SQLkomut dosyaları kullan. Bu özellikler aşağıdakileri içerir:
Renk Kodlama
Komut dosyalarını çalıştırma
Kaynak denetimi
Komut dosyalarını ayrıştırma
Showplan
Sorgu Düzenleyicisi'nde sqlcmd komut dosyalarını etkinleştirme
Bir aktif için sqlcmd komut dosyası açmak için Veritabanı Altyapısısorgu Düzenleyicisi penceresinde, aşağıdaki yordamı kullanın.
Bir Database Engine Query Editor penceresi sqlcmd moduna geçmek için
Nesne Explorer'da sunucuyu sağ tıklatın ve ardından Yeni sorgu, yeni açılacak Veritabanı Altyapısısorgu Düzenleyicisi penceresi.
Tarih sorgu menüsünü tıklayın sqlcmd modu.
Sorgu Düzenleyici çalıştırır sqlcmdiçeriğindeki ifadeler Query Editor.
Tarih sql Düzenleyicisi araç, Kullanılabilir veritabanları listesi, seçme AdventureWorks2012 .
Aşağıdaki iki sorgu Düzenleyicisi penceresinde yazın Transact-SQLdeyimleri ve !!DIR sqlcmddeyimi:
SELECT DISTINCT Type FROM Sales.SpecialOffer; GO !!DIR GO SELECT ProductCategoryID, Name FROM Production.ProductCategory; GO
Karışık bütün bölümünü çalıştırmak için F5 tuşuna basın Transact-SQLve ms-dos deyimleri.
Birinci ve üçüncü deyimlerinden iki sql sonuç bölmeleri dikkat edin.
İçinde sonuçları bölmesini tıklatın mesaj tüm üç deyimleri iletileri görmek için sekmeyi:
(6 satırları etkilenen)
<Dizin bilgileri>
(4 satırları etkilenen)
Önemli |
---|
Komut satırından çalıştırıldığında sqlcmdyardımcı programını işletim sistemi ile tam etkileşim verir. Sorgu Düzenleyicisi'nde kullandığınızda sqlcmd modu, etkileşimli olmayan yürütmek dikkatli olmalısınız. Sorgu Düzenleyicisi işletim sistemi istemlerine yanıt veremez. |
sqlcmd çalıştırma hakkında daha fazla bilgi için bkz: Sqlcmd yardımcı programı, ya da sqlcmd öğretici atın.
sqlcmd komut dosyası varsayılan olarak etkinleştir
sqlcmd komut dosyası varsayılan olarak açmak için araçları menüsünü seçin seçenekleri, genişletme Sorgu yürütme, ve SQL Server, tıklatın Genel sayfa ve iade yeni sorgular sqlcmd modu varsayılan olarak açık kutusu.
Yazma ve sqlcmd komut dosyalarını düzenleme
Kodlama modunu etkinleştirdikten sonra sqlcmd komutları yazabilir ve Transact-SQLdeyimleri. Aşağıdaki kurallar geçerlidir:
sqlcmd komutları, satırdaki ilk deyim olmalıdır.
Her satırda tek bir sqlcmd komut izin verilir.
sqlcmd komutları öncesinde yorumlar veya beyaz boşluk.
Yorum karakterleri içinde sqlcmd komutları yürütülmez.
Tek satırlı yorum karakterlerdir iki tire ( --) ve bir satır başında yer almalıdır.
İşletim sistemi komutları tarafından iki ünlem öncesinde (!!). Çift-ünlem komutu kullanılarak yürütülecek ünlem izleyen deyimi neden cmd.exekomut işlemcisi. Metinden sonra !!bir parametre olarak geçirilen cmd.exe, bu yüzden son komut satırı olarak çalıştırır: "%SystemRoot%\system32\cmd.exe /c <text after !!>".
sqlcmd komutları arasında net bir ayrım yapmak ve Transact-SQL, tüm sqlcmd komutlar, üste ile öncelenmemesi gerekir (:).
GOKomutu Önsöz kullanılan veya olabilir önünde!!:
Veritabanı AltyapısıSorgu Düzenleyici ortam değişkenleri ve değişkenleri sqlcmd komut dosyasının bir parçası tanımlanmıştır, ancak yerleşik sqlcmd desteklemiyor destekler veya osqldeğişkeni. sqlcmd tarafından işleme SQL Server Management Studiodurum değişkenleri duyarlıdır. Örneğin, yazdırma '$ (bilgisayaradı)' üretir, hata için baskı '$ (bilgisayaradı)' ancak doğru sonuç verir.
Dikkat |
---|
SQL Server Management Studiokullandığı Microsoft .NET Framework SqlClientnormal ve sqlcmd modu yürütülmesine. Komut satırından çalıştırıldığında sqlcmd ole db sağlayıcısını kullanır. Farklı varsayılan seçenekleri geçerli olduğundan, aynı sorguyu yürütürken farklı davranış elde etmek mümkün SQL Server Management Studiosqlcmd modu ve sqlcmd utility. |
Desteklenen sqlcmd sözdizimi
Veritabanı AltyapısıSorgu Düzenleyicisi aşağıdaki sqlcmd komut dosyası anahtar sözcükleri destekler:
[!!:]GO[count]
!! <command>
:exit(statement)
:Quit
:r <filename>
:setvar <var> <value>
:connect server[\instance] [-l login_timeout] [-U user [-P password]]
:on error [ignore|exit]
:error <filename>|stderr|stdout
:out <filename>|stderr|stdout
[!NOT]
Her ikisi için de :errorve :out, stderrve stdoutiçin iletiler sekmesini çıktı
Yukarıda listelenmeyen sqlcmd komutları sorgu Düzenleyicisi'nde desteklenmez. Desteklenen sqlcmd anahtar kelimeleri içeren bir komut dosyası yürütüldüğünde, Query Editor-ecek göndermek bir "komut görmezden <ignored command>'' ileti desteklenmeyen her anahtar kelimenin hedef. Komut başarıyla yürütülmesi, ancak desteklenmeyen komutlar yoksayılır.
Dikkat |
---|
Komut satırından sqlcmd başlıyor değil çünkü bazı sınırlamalar vardır sorgu Düzenleyicisi sqlcmd modunda çalışırken. Değişkenleri gibi komut satırı parametreleri geçirilemez ve sorgu Düzenleyicisi işletim sistemi istemlerine yanıt verme yeteneği olmadığından, etkileşimli olmayan yürütmek dikkatli olmalısınız. |
sqlcmd komut dosyalarını kodlama rengi
Etkin sqlcmd komut dosyası ile komut dosyalarını renk kodlu olacaktır. Renk kodlaması için Transact-SQLanahtar kelimeler aynı kalır. sqlcmd komutları gölgeli arka plan sunulmaktadır.
Örnek
Aşağıdaki örnek bir sqlcmdtestoutput.txt, adlı bir çıktı dosyası oluşturmak için deyimi yürütür iki Transact-SQL(geçerli dizin yazdırmak için) tek bir işletim sistemi komut ile birlikte select deyimleri. Mesaj çıktı sonuç dosyasını içeren DIRdeyimi sonuç çıktısı izledi, Transact-SQLdeyimleri.
:out C:\testoutput.txt
SELECT @@VERSION As 'Server Version'
!!DIR
!!:GO
SELECT @@SERVERNAME AS 'Server Name'
GO