Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analytics Platform Sistemi (PDW)
SQL Server Management Studio'da Veritabanı Altyapısı Sorgu Düzenleyicisi'ni kullanarak sorguları SQLCMD betikleri olarak yazabilir ve düzenleyebilirsiniz. Aynı betikte Windows Sistem komutlarını ve Transact-SQL deyimlerini işlerken SQLCMD betiklerini kullanırsınız.
SQLCMD Modu
SQLCMD betiklerini yazmak veya düzenlemek için Veritabanı Altyapısı Sorgu Düzenleyicisi'ni kullanmak için SQLCMD betik modunu etkinleştirmeniz gerekir. Varsayılan olarak, Sorgu Düzenleyicisi'nde SQLCMD moduna izin verilmez. Araç çubuğundaki SQLCMD Modu simgesini seçerek veya Sorgu menüsünden SQLCMD Modu seçerek komut dosyası modunu etkinleştirebilirsiniz.
Bir Not
SQLCMD modunun etkinleştirilmesi, Veritabanı Altyapısı Sorgu Düzenleyicisi'nde IntelliSense'i ve Transact-SQL hata ayıklayıcısını kapatır.
Sorgu Düzenleyicisi'ndeki SQLCMD betikleri, tüm Transact-SQL betiklerin kullandığı özellikleri kullanabilir. Bu özellikler şunlardır:
- Renk kodlama
- Komut dosyalarını çalıştırma
- Kaynak denetimi
- Skriptleri ayrıştırma
- Gösterim Planı
Sorgu Düzenleyicisi'nde SQLCMD betiğini etkinleştirme
Etkin bir Veritabanı Altyapısı Sorgu Düzenleyicisi penceresinde SQLCMD betiğini açmak için aşağıdaki yordamı kullanın.
Veritabanı altyapısı sorgu düzenleyicisi penceresini SQLCMD moduna geçirin
Nesne Gezgini'nde, sunucuya sağ tıklayın ve yeni bir Veritabanı Altyapısı Sorgu Düzenleyicisi penceresi açmak için Yeni Sorgu seçin.
Sorgu menüsünde SQLCMD Moduseçeneğini belirleyin.
Sorgu Düzenleyicisi, SQLCMD deyimlerini Sorgu Düzenleyicisi bağlamında yürütür.
SQL Düzenleyicisi araç çubuğundaki kullanılabilir veritabanları listesinde
AdventureWorks2025öğesini seçin.Sorgu Düzenleyicisi penceresinde aşağıdaki Transact-SQL deyimlerini ve
!!DIRSQLCMD deyimini yazın:SELECT DISTINCT Type FROM Sales.SpecialOffer; GO !!DIR GO SELECT ProductCategoryID, Name FROM Production.ProductCategory; GOKarma Transact-SQL ve MS-DOS deyimleri bölümünü yürütmek için F5 tuşuna basın.
İlk ve üçüncü deyimlerdeki iki SQL sonuç bölmesine dikkat edin.
Sonuçları bölmesinde, İletiler sekmesini seçerek üç deyimin de iletilerini görüntüleyin:
- (Etkilenen 6 satır)
- <Dizin bilgileri>
- (Etkilenen 4 satır)
Önemli
Komut satırından yürütüldüğünde, sqlcmd yardımcı programı işletim sistemiyle tam etkileşime izin verir. SQLCMD ModuSorgu Düzenleyicisi'ni kullandığınızda, etkileşimli deyimleri yürütmemeye dikkat etmeniz gerekir. Sorgu Düzenleyicisi işletim sistemi istemlerine yanıt veremiyor.
SQLCMD'yi çalıştırma hakkında daha fazla bilgi için bkz. sqlcmd yardımcı programı veya SQLCMD öğreticisini alın.
SQLCMD betiğini varsayılan olarak etkinleştirme
SQLCMD betiğini varsayılan olarak açmak için, Araçlar menüsünde Seçenekler'iseçin, Sorgu Yürütme 'genişletin ve SQL Server Genel sayfasını seçin ve Varsayılan olarak SQLCMD Modunda yeni sorgular aç kutusunu işaretleyin.
SQLCMD betiklerini yazma ve düzenleme
Betik modunu etkinleştirdikten sonra SQLCMD komutları ve Transact-SQL deyimleri yazabilirsiniz. Aşağıdaki kurallar geçerlidir:
SQLCMD komutları bir satırdaki ilk deyim olmalıdır.
Her satırda yalnızca bir SQLCMD komutuna izin verilir.
SQLCMD komutlarının önünde açıklamalar veya boşluk olabilir.
Açıklama karakterleri içindeki SQLCMD komutları yürütülemez.
Tek satırlı açıklama karakterleri iki kısa çizgidir (
--)) ve satırın başında yer almalıdır.İşletim sistemi komutlarının önünde iki ünlem işareti (
!!) bulunmalıdır. Çift ünlem noktaları komutu, ünlem işaretlerini izleyen deyimincmd.exekomut işlemcisi kullanılarak yürütülmesine neden olur.!!sonra gelen metincmd.exeparametresi olarak geçirildiğinden, son komut satırı şu şekilde yürütülür:"%SystemRoot%\system32\cmd.exe /c <text after !!>".SQLCMD komutları ile Transact-SQL arasında net bir ayrım yapmak için, tüm SQLCMD komutlarının ön ekine iki nokta üst üste (
:) eklenmelidir.Bu
GOkomutu, herhangi bir önsöz olmadan veya öncesinde!!:kullanılarak çalıştırılabilir.Veritabanı Altyapısı Sorgu Düzenleyicisi, BIR SQLCMD betiğinin parçası olarak tanımlanan ortam değişkenlerini ve değişkenleri destekler, ancak yerleşik SQLCMD veya osql değişkenlerini desteklemez. SQL Server Management Studio tarafından yapılan SQLCMD işlemesi, değişkenler için büyük/küçük harfe duyarlı olmaya dikkat edilmesini gerektirir. Örneğin, PRINT '$(COMPUTERNAME)' doğru sonucu verir, ancak PRINT '$(ComputerName)' bir hata döndürür.
Dikkat
SQL Server Management Studio, normal ve SQLCMD modunda yürütme için Microsoft .NET Framework SqlClient kullanır. Komut satırından çalıştırıldığında, SQLCMD OLE DB sağlayıcısını kullanır. Farklı varsayılan seçenekler uygulanabileceğinden, AYNı sorguyu SQL Server Management Studio SQLCMD modunda ve sqlcmd yardımcı programıyla yürütürken farklı davranışlar elde edebilirsiniz.
Desteklenen SQLCMD söz dizimi
Veritabanı Altyapısı Sorgu Düzenleyicisi aşağıdaki SQLCMD betik anahtar sözcüklerini 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
Bir Not
:error ve :outile stderr ve stdoutiçin iletiler sekmesine çıkış gönderin.
Yukarıda listelenmeyen SQLCMD komutları Sorgu Düzenleyicisi'nde desteklenmez. SQLCMD anahtar sözcüklerini içeren bir betik yürütülmezse, Sorgu Düzenleyicisi desteklenmeyen her anahtar sözcük için hedefe "Yoksayılan komut <yoksayılan komut>" iletisini gönderir. Betik başarıyla yürütülür, ancak desteklenmeyen komutlar görmezden gelinir.
Dikkat
SQLCMD'yi komut satırından başlatmadığınızdan, SQLCMD modunda Sorgu Düzenleyicisi'ni çalıştırırken bazı sınırlamalar vardır. Değişkenler gibi komut satırı parametrelerini geçiremezsiniz ve Sorgu Düzenleyicisi işletim sistemi istemlerine yanıt veremediğinden etkileşimli deyimleri yürütmemeye dikkat etmeniz gerekir.
SQLCMD betiklerinde renk kodlama
SQLCMD betikleri etkinleştirildiğinde, betikler renk kodlanır. Transact-SQL anahtar sözcükleri için renk kodlaması aynı kalır. SQLCMD komutları gölgeli bir arka plan ile sunulur.
Örnekler
Aşağıdaki örnek, testoutput.txtadlı bir çıkış dosyası oluşturmak için bir SQLCMD deyimi kullanır ve bir işletim sistemi komutuyla birlikte (geçerli dizini yazdırmak için) iki Transact-SQL SELECT deyimi yürütür. Sonuç dosyası, DIR deyiminden ileti çıkışını ve Transact-SQL deyimlerinden elde edilen sonuçları içerir.
:out C:\testoutput.txt
SELECT @@VERSION As 'Server Version';
!!DIR
!!:GO
SELECT @@SERVERNAME AS 'Server Name';
GO