Sqlcmd yardımcı programı

sqlcmdYarar girebilmenizi sağlar Transact-SQLdeyimleri, sistem yordamları, komut dosyaları ve komut isteminde de Sorgu Düzenleyicisi sqlcmd modu, Windows komut dosyası veya bir işletim sistemi (Cmd.exe) iş adımının bir SQL ServerAracısı işi. Bu yardımcı programı çalıştırmak için odbc kullanan Transact-SQLtoplu.

Önemli notÖnemli

SQL Server Management Studiokullandığı Microsoft .NET Framework SqlClientdüzenli ve sqlcmd modunda yürütme Sorgu Düzenleyicisi. Ne zaman sqlcmdkomut satırından çalıştırmak sqlcmdodbc sürücüsü kullanır. Farklı varsayılan seçenekleri geçerli olduğundan, aynı sorguyu yürüttüğünüzde farklı davranış görebilirsiniz SQL Server Management Studiosqlcmd modu ve de sqlcmdyarar.

Şu anda, sqlcmdkomut satırı seçeneği ile değer arasında bir boşluk gerektirmez. Ancak, sonraki bir sürümde bir alan değeri arasında komut satırı seçeneği gerekli olabilir.

Sözdizimi

sqlcmd 
   -a packet_size
   -A (dedicated administrator connection)
   -b (terminate batch job if there is an error)
   -c batch_terminator
   -C (trust the server certificate)
   -d db_name
   -e (echo input)
   -E (use trusted connection)
   -f codepage | i:codepage[,o:codepage] | o:codepage[,i:codepage]
   -h rows_per_header
   -H workstation_name
   -i input_file
   -I (enable quoted identifiers)
   -k[1 | 2] (remove or replace control characters)
   -K application_intent
   -l login_timeout
   -L[c] (list servers, optional clean output)
   -m error_level
   -N (encrypt connection)
   -o output_file
   -p[1] (print statistics, optional colon format)
   -P password
   -q "cmdline query"
   -Q "cmdline query" (and exit)
   -r[0 | 1] (msgs to stderr)
   -R (use client regional settings)
   -s col_separator
   -S [protocol:]server[\instance_name][,port]
   -t query_timeout
   -u (unicode output file)
   -U login_id
   -v var = "value"
   -V error_severity_level
   -w column_width
   -W (remove trailing spaces)
   -x (disable variable substitution)
   -X[1] (disable commands, startup script, environment variables and optional exit)
   -y variable_length_type_display_width
   -Y fixed_length_type_display_width
   -z new_password 
   -Z new_password (and exit)

   -? (usage)

Komut satırı seçenekleri

  • Oturum açma ile ilgili seçenekleri

  • -A
    Oturum SQL Serveradanmış yönetici bağlantısı (dac). Bu tür bir bağlantı, sunucu sorunlarını gidermek için kullanılır. Bu sadece dac destekleyen sunucu bilgisayarlar ile çalışacaktır. dac yoksa sqlcmdhata iletisi oluşturur ve sonra çıkar. dac hakkında daha fazla bilgi için bkz: Veritabanı yöneticileri için teşhis bağlantısı.

  • -C
    Bu anahtar istemci tarafından dolaylı olarak doğrulama olmadan sunucu sertifikasına güvenmelerini yapılandırmak için kullanılır. Bu seçenek, ADO'ya eşdeğerdir.net seçeneği TRUSTSERVERCERTIFICATE = true.

  • -ddb_name
    Sorunları bir USE db_namene zaman ifade sqlcmd. Bu seçenek ayarlar sqlcmdkomut dosyası değişkeni sqlcmddbname. Bu ilk veritabanını belirtir. Varsayılan giriş'ın varsayılan veritabanı özelliğidir. Veritabanı yoksa, bir hata iletisi oluşturulur ve sqlcmdçıkar.

  • -llogin_timeout
    Önce saniye sayısını belirtir bir sqlcmdgiriş için odbc sürücüsü zaman aşımına bir sunucuya bağlanmaya çalıştığınızda. Bu seçenek ayarlar sqlcmdkomut dosyası değişkeni SQLCMDLOGINTIMEOUT. Oturum açma için varsayılan zaman aşımı değeri sqlcmdsekiz saniye. Oturum açma zaman aşımı 0-65534 arasında bir sayı olmalıdır. Sağlanan değer sayı değil ya da bu sınırlar içine düşmek değil sqlcmdbir hata iletisi oluşturuyor. 0 Değeri, sonsuz olmak için zaman aşımını belirtir.

  • -E
    Güvenilen bir bağlantı oturum açmak için kullanıcı adı ve parola kullanmak yerine kullanır SQL Server. Varsayılan olarak, e - belirtilen olmadan sqlcmdtrusted connection seçeneği kullanır.

    -ESeçeneği yoksayar olası kullanıcı adı ve parola ortam değişkeni ayarları sqlcmdpassword gibi. Eğer -Eseçeneği ile birlikte kullanıldığında -Useçeneğini ya da -Pseçeneği, hata iletisi üretilir.

  • -Hworkstation_name
    Bir iş istasyonunun adı. Bu seçenek ayarlar sqlcmdkomut dosyası değişkeni SQLCMDWORKSTATION. İş istasyonu adı listelenir ana sütununda sys.processes katalog görünüm ve saklı yordam kullanılarak döndürülebilir sp_who. Bu seçenek belirtilmezse, geçerli bilgisayar adı varsayılandır. Bu ad farklı tanımlamak için kullanılan sqlcmdoturumları.

  • -Kapplication_intent
    Bir sunucuya bağlanırken uygulama iş yükünü türünü bildirir. Şu anda desteklenen tek değer salt okunur. Eğer -k belirtilmemişse, sqlcmd yardımcı programı değil bir AlwaysOn kullanılabilirlik grubunda ikincil çoğaltma bağlantısı destekler. Daha fazla bilgi için, bkz. Okunabilir ikincil kopyaları (AlwaysOn kullanılabilirlik grupları).

  • -N
    Bu anahtar istemci tarafından şifreli bir bağlantı isteği için kullanılır.

  • -Ppassword
    Kullanıcı tanımlı bir parola değil. Parolalar büyük/küçük harf duyarlıdır. -u seçeneği kullanılırsa ve -Pseçeneği kullanılır, ve sqlcmdpassword ortam değişkeni ayarlanmamış, sqlcmdkullanıcıya parola sorar. Eğer -Pseçeneği, komut istemi parolasız sonunda kullanılır sqlcmdvarsayılan parolasını (null).

    Güvenlik notuGüvenlik Notu

    Boş parola kullanmayın. Güçlü bir parola kullanın. Daha fazla bilgi için, bkz. Güçlü parolalar.

    Parola istemi parola istemi için konsol gibi yazdırarak görüntülenir:Password:

    Kullanıcı girişi gizlidir. Yani hiçbir şey görüntülenmez ve imleç konumunda kalır.

    sqlcmdpassword ortam değişkeni, geçerli oturum için varsayılan parola ayarlamanızı sağlar. Bu nedenle, parola toplu iş dosyalarına sabit kodlanmış olması gerekmez.

    Aşağıdaki örnek ilk komut isteminde sqlcmdpassword değişken ayarlar ve sonra erişir sqlcmdyarar. Komut isteminde şunu yazın:

    SET SQLCMDPASSWORD= p@a$$w0rd

    Güvenlik notuGüvenlik Notu

    Parolayı bilgisayar monitörü görebilen herkes tarafından görülebilir.

    Aşağıdaki komut istemine yazın:

    sqlcmd

    Kullanıcı adı ve şifre kombinasyonu yanlış ise, bir hata iletisi oluşturulur.

    [!NOT]

    osqlpassword ortam değişkeni, geriye doğru uyumluluk için tutulmuştur. sqlcmdpassword ortam değişkeni osqlpassword ortam değişkeni üzerinde önceliğe sahiptir; Bu demektir ki sqlcmdve osqlkullanılan her diğer olmadan next girişim olabilir ve eski komut dosyası çalışmaya devam edecek.

    Eğer -Pseçeneği ile kullanılan -Eseçeneği, hata iletisi üretilir.

    Eğer -Pseçeneğini sonra birden fazla bağımsız değişken, bir hata iletisi oluşturulur ve program çıkar.

  • -Sprotocol:server**\instance_name],**port
    Örneğini belirtir SQL ServerBağlanılacak. Bu ayarlar sqlcmddeğişken SQLCMDSERVER ne scripting.

    Belirtmek server_namevarsayılan örneğine bağlanmak için SQL ServerBu sunucu bilgisayarında. Belirtmek server_name **\**instance_name adlandırılmış bir örneğine bağlanmak için SQL ServerBu sunucu bilgisayarında. Sunucu bilgisayar belirtilirse, sqlcmdvarsayılan örneğine bağlar SQL ServerYerel bilgisayarda. Ne zaman sen idam Bu seçenek gereklidir sqlcmdağdaki uzak bir bilgisayardan.

    protocololabilir tcp(TCP/IP), lpc(paylaşılan bellek), veya np(adlandırılmış kanallar).

    Belirtmezseniz, bir server_name **\**instance_name başlattığınızda sqlcmd, SQL Serverdenetler ve SQLCMDSERVER ne ortam değişkenini kullanır.

    [!NOT]

    osqlserver ortam değişkeni, geriye doğru uyumluluk için tutulmuştur. SQLCMDSERVER ne ortam değişkeni osqlserver ortam değişkeni üzerinde önceliğe sahiptir; Bu demektir ki sqlcmdve osqlkullanılan her diğer olmadan next girişim olabilir ve eski komut dosyası çalışmaya devam edecek.

  • -Ulogin_id
    Kullanıcı oturum açma kimliği.

    [!NOT]

    osqluser ortam değişkeni, geriye dönük uyumluluk için kullanılabilir. sqlcmduser ortam değişkeni osqluser ortam değişkenine göre önceliklidir. Bu demektir ki sqlcmdve osqlyan yana sorunsuz kullanılabilir. Ayrıca varolan gelir osqlkomut dosyası çalışmaya devam.

    Eğer ne -Useçeneği ne -Pseçeneği belirtilirse, sqlcmdkullanarak bağlanmaya MicrosoftWindows kimlik doğrulaması modu. Kimlik doğrulama Windows çalıştıran kullanıcı hesabındaki dayanır sqlcmd.

    Eğer -Useçeneği ile kullanılan -Eseçeneği (bu konunu sonraki bölümlerinde açıklanmıştır), bir hata iletisi oluşturulur. Eğer –Useçeneğini sonra birden fazla bağımsız değişken, bir hata iletisi oluşturulur ve program çıkar.

  • -znew_password
    Parolayı Değiştir:

    sqlcmd -U someuser -P s0mep@ssword -z a_new_p@a$$w0rd

  • -Znew_password
    Parola değiştirme ve çıkış:

    sqlcmd -U someuser -P s0mep@ssword -Z a_new_p@a$$w0rd

  • Input/Output Options

  • -fcodepage| **i:codepage,o:**codepage| **o:codepage,i:**codepage
    Giriş ve çıkış kod sayfaları belirtir. Kod sayfası numarasını bir yüklü Windows kod sayfası belirten sayısal bir değerdir.

    Kod sayfası dönüştürme kuralları:

    • Kod sayfası yok belirtilirse, sqlcmdgeçerli kod sayfası-ecek kullanma için giriş ve çıkış dosyaları, giriş dosyası Unicode dosyası değilse, bu durumda dönüştürme gerekli değildir.

    • sqlcmdbig-endian ve little-endian Unicode giriş dosyaları otomatik olarak tanır. Eğer -useçeneği belirtilen, çıktı hep küçük endian Unicode olacak.

    • Hiçbir çıkış dosyası belirtilirse, çıkışı kod sayfası konsol kod sayfası olacaktır. Bu, konsolda doğru görüntülenecek çıktı sağlar.

    • Birden çok girdi dosyalarının aynı kod sayfası olduğu varsayılır. Giriş dosyası Unicode ve Unicode olmayan karışık olabilir.

    Girmek chcp Cmd.exe kod sayfasını doğrulamak için komut isteminde.

  • -iinput_file[**,**input_file2...]
    Saklı yordamlar veya toplu sql deyimleri içeren dosyayı tanımlar. Birden çok dosya, okuma olacak ve sırasına göre işleme belirtilebilir. Dosya adları arasında herhangi bir boşluk kullanmayın. sqlcmdönce belirtilen tüm dosyalar mevcut olup olmadığını görmek için kontrol eder. Bir veya daha fazla dosya yoksa sqlcmdçıkacak. -İ ve -q/q seçenekleri kullanılamaz.

    Yol örnekler:

    -ic:\<DosyaAdı>

    -i\\<Server>\<Share$>\<filename>

    -i"C:\Some Folder\<Dosya adı>''

    Boşluk içeren dosya yollarını tırnak içine alınmalıdır.

    Bu seçenek birden çok kez kullanılabilir:-i input_file -I I input_file.

  • -ooutput_file
    Çıktısı alır dosyayı tanımlayan sqlcmd.

    Eğer -ubelirtilen output_fileUnicode biçiminde saklanmış. Dosya adı geçerli değilse, bir hata iletisi oluşturulur, ve sqlcmdçıkar. sqlcmdbirden fazla eş zamanlı yazmayı desteklemiyor sqlcmdişlemler aynı dosyaya. Dosya çıktısı bozuk veya yanlış olacaktır. Bkz: -fgeçiş dosya biçimleri hakkında daha fazla bilgi için. Bu dosya yoksa oluşturulur. Aynı adından önce bir dosya sqlcmdoturum yazılır. Burada dosya belirtilen stdout dosyası. Eğer bir stdout dosya, bu dosyayı değil kullanılabilir belirtilir.

    Yol örnekler:

    -o c:\ < DosyaAdı>

    -o \\<Server>\<Share$>\<filename>

    **-o "**C:\Some Folder\<Dosya adı>''

    Boşluk içeren dosya yollarını tırnak içine alınmalıdır.

  • -r[0 | 1]
    Hata mesajı çıktı ekrana yönlendirir (stderr). Parametre belirtmezseniz veya belirtirseniz 0hata iletileri düzeyi 11 veya daha yüksek önem derecesi yönlendirildi var sadece. If you specify 1, tüm hata mesajı çıktı yazdırma dahil olmak üzere yeniden yönlendirildiği. -O kullanıyorsanız hiçbir etkisi olmaz. Varsayılan olarak ileti gönderilen stdout.

  • -R
    Neden sqlcmdsayısal, yerelleştirmek için para birimi, Tarih ve saat sütunları den alınan SQL Serveristemcinin yerel ayara göre. Varsayılan olarak, bu sütunlar, sunucunun bölgesel ayarları kullanarak görüntülenir.

  • -u
    Belirleyen output_filene olursa olsun biçimi Unicode biçiminde depolanan input_file.

  • Sorgu yürütme seçenekleri

  • -e
    Giriş komut dosyaları standart çıktı aygıtına yazıyor (stdout).

  • -I
    set quoted_ıdentıfıer bağlantı seçeneği on olarak ayarlar. Varsayılan olarak, off için ayarlanır. Daha fazla bilgi için, bkz. set QUOTED_IDENTIFIER (Transact-sql).

  • -q"cmdline query"
    Bir sorgu yürütür ne zaman sqlcmdbaşlar, ama değil çıkış sqlcmdzaman sorgunun çalışmasını bitirdi. Çok-noktalı virgülle ayrılmış sorgu çalıştırılır. Sorguyu çift tırnak, aşağıdaki örnekte gösterildiği gibi kullanın.

    Komut isteminde şunu yazın:

    sqlcmd -d AdventureWorks2012 -q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"

    sqlcmd -d AdventureWorks2012 -q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"

    Önemli notÖnemli

    Sorguda go Sonlandırıcı kullanmayın.

    Eğer -bBu seçeneği ile birlikte, belirtilen sqlcmdçıkar hata. -bBu konunun ilerisinde açıklanmıştır.

  • -Q"cmdline query"
    Bir sorgu yürütür ne zaman sqlcmdbaşlar ve hemen çıkar sqlcmd. Çok-noktalı virgülle ayrılmış sorgu çalıştırılır.

    Sorguyu çift tırnak, aşağıdaki örnekte gösterildiği gibi kullanın.

    Komut isteminde şunu yazın:

    sqlcmd -d AdventureWorks2012 -Q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"

    sqlcmd -d AdventureWorks2012 -Q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"

    Önemli notÖnemli

    Sorguda go Sonlandırıcı kullanmayın.

    Eğer -bBu seçeneği ile birlikte, belirtilen sqlcmdçıkar hata. -bBu konunun ilerisinde açıklanmıştır.

  • -tquery_timeout
    Bir komut (veya sql deyimi) Zaman aşımına uğramadan önce saniye sayısını belirtir. Bu seçenek ayarlar sqlcmdkomut dosyası değişkeni SQLCMDSTATTIMEOUT. Eğer bir time_outdeğer belirtilmezse, komut zaman aşımına yok. query time_out1-65534 Arasında bir sayı olmalı. Sağlanan değer sayı değil ya da bu sınırlar içine düşmek değil sqlcmdbir hata iletisi oluşturuyor.

    [!NOT]

    Gerçek zaman aşımı değeri belirtilen değişebilir time_outbirkaç saniye değeriyle.

  • -vvar = valuevar = value...]
    Oluşturur bir sqlcmd kullanılabilir komut dosyası değişkeni bir sqlcmdJavaScript Değer boşluk içeriyorsa değeri tırnak işaretleri içine alın. Çoklu belirleyebileceğiniz var="values" değerler. Belirtilen değerlerin herhangi bir hata varsa sqlcmdhata iletisi oluşturur ve sonra çıkar.

    sqlcmd -v MyVar1=something MyVar2="some thing"

    sqlcmd -v MyVar1=something -v MyVar2="some thing"

  • -x
    Neden sqlcmdkomut dosyası değişkenleri yok saymak için. Komut dosyası $ gibi düzenli değişkenleri aynı biçimde var dizeleri içerebilir birçok INSERT deyimleri içerdiğinde yararlıdır (variable_name).

  • Biçimlendirme Seçenekleri

  • -hheaders
    Sütun başlıkları arasında yazdırmak için satır sayısını belirtir. Her sorgu sonuç kümesinin bir kez başlıkları yazdırmak için varsayılandır. Bu seçenek ayarlar sqlcmdkomut dosyası değişkeni sqlcmdheaders. Kullanım -1 başlıkları değil yazdırılmalıdır belirtmek için. Geçerli nedenleri olmayan herhangi bir değer sqlcmdbir hata iletisi üretip sonra çıkın.

  • -k [1 | 2]
    Tüm denetim karakterleri, sekmeler ve yeni satır karakteri çıktısından kaldırır. Bu sütunun veri döndüğünde biçimlendirmesini korur. 1 Belirtilirse, denetim karakterleri tek boşluk değiştirilir. 2 Belirtilirse, ardışık denetim karakterleri tek boşluk değiştirilir. -k aynı -k1.

  • -scol_separator
    Sütun ayırıcı karakteri belirtir. Varsayılan değer boş bir alandır. Bu seçenek ayarlar sqlcmdkomut dosyası değişkeni sqlcmdcolsep. İşletim sistemine karakteri gibi özel anlamı olan karakterleri kullanmak için (&), veya noktalı virgül (;), tırnak işareti ('') karakteri alın. Sütun ayırıcı herhangi bir 8 bitlik karakter olabilir.

  • -wcolumn_width
    Çıktı için ekran genişliğini belirtir. Bu seçenek ayarlar sqlcmdkomut dosyası değişkeni SQLCMDCOLWIDTH. Sütun genişliğini 8 ve 65536 büyük bir sayı olması gerekir. Belirtilen sütun genişliğini Bu sınırlar içine düşmek değil, sqlcmdoluşturur ve hata mesajı. Varsayılan genişliği 80 karakter olabilir. Bir çıktı satırı belirtilen sütun genişliğini aşarsa, sonraki satıra kaydırılır.

  • -W
    Bu seçeneği, bir sütun için sondaki boşlukları kaldırır. Bu seçeneği ile birlikte kullanan -sseçeneği başka bir uygulamaya dışa aktarılacak veri hazırlama ne zaman. Kullanılamaz -yya -Yseçenekleri.

  • -yvariable_length_type_display_width
    Ayarlar sqlcmdkomut dosyası değişkeni SQLCMDMAXFIXEDTYPEWIDTH. Varsayılan 256'dır. Büyük değişken uzunluklu veri türleri için döndürülen karakter sayısını sınırlar:

    • varchar(max)

    • nvarchar(max)

    • varbinary(max)

    • xml

    • UDT (user-defined data types)

    • text

    • ntext

    • image

    [!NOT]

    UDTs uygulama bağlı sabit uzunlukta olabilir. Sabit uzunlukta udt bu süre daha kısa ise o display_width, udt değerini döndürdü etkilenmez. Ancak, süresi uzunsa display_width, çıkış kesildi.

    Display_width 0 ise, çıkış 1 mb kesilir.

    Önemli notÖnemli

    Kullanım -y0 seçeneği ile çok dikkatli çünkü hem sunucu hem de büyüklüğüne bağlı olarak döndürülen verileri ağ üzerinde ciddi performans sorunlarına neden olabilir.

  • -Yfixed_length_type_display_width
    Ayarlar sqlcmdkomut dosyası değişkeni SQLCMDMAXVARTYPEWIDTH. Varsayılan değer 0 (sınırsız)'dır. Aşağıdaki veri türleri için döndürülen karakter sayısını sınırlar:

    • char(n), where 1<=n<=8000

    • nchar(nn), where 1<=n<=4000

    • varchar(nn), where 1<=n<=8000

    • nvarchar(nn), where 1<=n<=4000

    • varbinary(nn), where 1<=n<=4000

    • variant

  • Hata raporlama seçenekleri

  • -b
    Belirleyen sqlcmdçıkar ve bir hata oluştuğunda bir dos errorlevel değerini döndürür. dos errorlevel değişkeni döndürülen değer 1 zaman SQL Serverhata iletisi vardır; 10'dan büyük bir önem düzeyi Aksi takdirde, döndürülen değeri ise 0. Eğer -Vyanı sıra seçeneği ayarlanmış -b, sqlcmdHata önem düzeyi değerleri düşükse kullanılarak ayarlanan rapor değil -V. Komut istemi toplu iş dosyaları, errorlevel değerini test ve hata uygun şekilde ele. sqlcmdönem düzeyi 10 (bilgilendirme iletileri) hataları bildirmez.

    Eğer sqlcmdkomut dosyası içeren bir yanlış yorum, sözdizimi hatası veya bir komut dosyası değişkeni eksik, döndürülen errorlevel 1.

  • -merror_level
    Hata iletileri için gönderdiği denetimleri stdout. Bu düzeyde eşit veya daha az gönderilir önem düzeyi olan iletiler. Bu değer ayarlandığında -1, bilgi iletileri de dahil olmak üzere tüm iletiler gönderilir. Alanlarda arasında izin verilir -mve -1. Örneğin, -m-1 geçerli olduğu ve -m -1 değil.

    Bu seçenek ayrıca ayarlar sqlcmdkomut dosyası değişkeni sqlcmderrorlevel. Bu değişkenin varsayılan değeri 0 vardır.

  • -Verror_severity_level
    errorlevel değişkeni ayarlamak için kullanılan önem düzeyini denetler. Önem düzeyleri daha az veya bu değere eşit olması hata iletilerinden errorlevel ayarlayın. 0'dan az olan değerleri 0 olarak raporlanır. Toplu ve cmd dosyaları, errorlevel değişkenini değerini test etmek için kullanılabilir.

  • Çeşitli seçenekler

  • -apacket_size
    Farklı boyutta bir paket ister. Bu seçenek ayarlar sqlcmdkomut dosyası değişkeni SQLCMDPACKETSIZE. packet_size512 ile 32767 arasında bir değer olmalıdır. Varsayılan 4096 =. Bir büyük paket boyutu, sql deyimleri git komutları arasında çok komut dosyalarını yürütme performansını artırabilirsiniz. Sen-ebilmek rica daha büyük bir paket boyutu. Bununla birlikte, istek reddedilirse, sqlcmdsunucu varsayılan paket boyutunu kullanır.

  • -cbatch_terminator
    Toplu Sonlandırıcı belirtir. Varsayılan olarak, komut sonlandırıldı ve gönderilen SQL Serversözcüğü yazarak "Git" tek başına bir satırda. Toplu terminator'ı sıfırladığınızda, kullanmadığı Transact-SQLbile onlar önünde ters eğik çizgi ile anahtar kelimeler ya da işletim sistemine özel anlamı olan karakterleri aittir.

  • -Lc
    Yerel olarak yapılandırılmış sunucu bilgisayarları ve ağda yayınlamak sunucu bilgisayarların adlarını listeler. Bu parametre, diğer parametreler birlikte kullanılamaz. Listelenebilir sunucu bilgisayarların sayısı 3000 ' dir. Sunucu listesi arabellek boyutu nedeniyle kesilirse bir uyarı iletisi görüntülenir.

    [!NOT]

    Yayın ağlarında, doğası nedeniyle sqlcmdtüm sunuculardan zamanında yanıt alamayabilir. Bu nedenle, döndürülen sunucular listesini bu seçeneği her çağrı için değişebilir.

    Eğer isteğe bağlı bir parametre c belirtilirse, çıkışı sunucuları görüntülenir: başlık satırı ve her sunucu satırına listeleniyor boşluklar olmadan. Bu temiz çıktı olarak adlandırılır. Temiz çıktı, komut dosyası dilleri işleme performansını artırır.

  • -p[1]
    Her sonuç kümesi için performans istatistiklerini yazdırır. Aşağıdaki performans istatistikleri için biçim örneğidir:

    Network packet size (bytes): n

    x xact[s]:

    Clock Time (ms.): total t1 avg t2 (t3 xacts per sec.)

    Nerede:

    x= Tarafından işlenen hareket sayısı SQL Server.

    t1= Tüm hareketler için toplam süre.

    t2= Tek bir işlem ortalama zaman.

    t3= Hareketleri saniyedeki ortalama sayısı.

    Tüm zamanlar milisaniye olarak bulunmaktadır.

    Eğer isteğe bağlı bir parametre 1 belirtilen, İstatistikler çıktı biçimi kolayca içe bir elektronik tabloya veya komut dosyası tarafından işlenen kolon ayrılmış biçimde.

    İsteğe bağlı bir parametre dışında herhangi bir değer ise 1, bir hata oluşturulur ve sqlcmdçıkar.

  • -X[1]
    Sistem güvenliğini tehlikeye atabilir komutları devre dışı bırakır ne zaman sqlcmdbir toplu iş dosyasından idam. Engelli komutları hala tanınır; sqlcmdbir uyarı iletisi verir ve devam ediyor. Eğer isteğe bağlı bir parametre 1 belirtilen sqlcmdhata iletisi oluşturur ve sonra çıkar. Aşağıdaki komutları devre dışı olduğunda -Xseçeneği kullanılır:

    • ED

    • !! command

    Eğer -Xseçeneği belirtilirse, ortam değişkenleri için geçirilen dan engeller sqlcmd. Ayrıca yürütülen dan SQLCMDINI komut dosyası değişkeni kullanarak belirtilen başlangıç komut engeller. Hakkında daha fazla bilgi için sqlcmdbkz: komut dosyası değişkenleri, Sqlcmd Scripting değişkenleri ile kullanma.

  • -?
    Sözdizimi özetini görüntüler sqlcmdseçenekleri.

Açıklamalar

Seçenekleri sözdizimi bölümünde gösterilen sırada kullanılması gerekmez.

Birden çok sonuç döndürülmediğinde sqlcmdher sonuç kümesi bir toplu arasına boş bir satır yazdırılır. Ayrıca, "<x> etkilenen satırların" yürütülen deyimi uygulanamaz iletisi görünmez.

Kullanmak için sqlcmdetkileşimli, yazın sqlcmd komut satırına herhangi bir ya da daha fazla bu konuda daha önce açıklanan seçenekler. Daha fazla bilgi için bkz.Sqlcmd yardımcı programını kullanın

[!NOT]

Seçenekler -L, -Q, -Zveya -i neden sqlcmdyürütme sonrasında çıkmak için.

Toplam uzunluğu sqlcmdhangi Cmd.exe için işletim sistemi tarafından belirlenir ise komut satırı komut ortamı (Cmd.exe) dahil tüm bağımsız değişkenleri ve genişletilmiş değişkenleri,.

Değişken öncelik (yüksek düşük)

  1. Sistem düzeyi ortam değişkenleri.

  2. Kullanıcı düzeyi ortam değişkenleri

  3. Komut kabuğu (set x = y) çalıştırmadan önce komut isteminde set sqlcmd.

  4. sqlcmd -vX = Y

  5. : Setvar y x

[!NOT]

Ortam değişkenlerini görüntülemek için Denetim Masasıaçık sistemve'yi Gelişmiş sekmesi.

Sqlcmd Scripting değişkenleri

Değişken

İlgili anahtar

R/W

Default

SQLCMDUSER

-U

R

""

SQLCMDPASSWORD

-P

--

""

SQLCMDSERVER NE

-S

R

"DefaultLocalInstance"

SQLCMDWORKSTATION

-H

R

"BilgisayarAdı"

SQLCMDDBNAME

-d

R

""

SQLCMDLOGINTIMEOUT

-l

R/W

"8" (saniye)

SQLCMDSTATTIMEOUT

-t

R/W

"0" süresiz olarak bekleme =

SQLCMDHEADERS

-h

R/W

"0"

SQLCMDCOLSEP

-s

R/W

" "

SQLCMDCOLWIDTH

-w

R/W

"0"

SQLCMDPACKETSIZE

-a

R

"4096"

SQLCMDERRORLEVEL

-m

R/W

0

SQLCMDMAXVARTYPEWIDTH

-y

R/W

"256"

SQLCMDMAXFIXEDTYPEWIDTH

-Y

R/W

"0" = sınırsız

SQLCMDEDITOR

R/W

"edit.com"

SQLCMDINI

R

""

sqlcmduser, sqlcmdpassword ve SQLCMDSERVER ne zaman ayarlanmış : Connect

kullanılır.

R değeri yalnızca bir kez program başlatma sırasında ayarlanabileceğini gösterir.

R/w gösterir değeri kullanılarak değiştirilebilir setvarkomutu ve izleyen komutları etkisinde yeni değeri.

sqlcmd komutları

Ek olarak Transact-SQLdeyimleri içinde sqlcmd, aşağıdaki komutları da mevcuttur:

GO count

: Liste

: Sıfırla

: Hata

:ED

: Out

[:] !!

: Perftrace

:QUIT

: Bağlan

:EXIT

: Hata Tarih

: r

: Yardım

: ServerList

:XML [ON |OFF]

: Setvar

: Listvar

Kullandığınızda, aşağıdaki unutmayın sqlcmdkomutları:

  • Tüm sqlcmdüste git, dışındaki komutları öneki (:).

    Önemli notÖnemli

    Varolan ile geriye dönük uyumluluğu için osqlkomut dosyaları, bazı komutlar kolon tanınması. Bu belirtilir :.

  • sqlcmdyalnızca bir satır başlangıcında görünüyormuş komutları tanınır.

  • Tüm sqlcmdkomutları duyarsız.

  • Her komut, ayrı bir satırda olmalıdır. Komut tarafından takip edilemez bir Transact-SQLdeyimi veya başka bir komuttan.

  • Komutlar hemen yürütülür. Yürütme arabellek koymak değil Transact-SQLifadeler.

  • Düzenleme komutları

  • :ED
    Metin Düzenleyicisi'ni başlatır. Geçerli düzenlemek için bu yayıncı kullanılabilir Transact-SQLtoplu ya da son yürütülen toplu. Son yürütülen toplu düzenleme ed komutu olmalıdır yazılan hemen son toplu iş yürütme tamamlandığında.

    Metin Düzenleyicisi'ni, SQLCMDEDITOR ortam değişkeni tarafından tanımlanır. 'Düzenle' varsayılan düzenleyicidir. Editör değiştirmek için SQLCMDEDITOR ortam değişkenini ayarlayın. Örneğin, düzenleyici ayarlamak için MicrosoftNot Defteri, komut istemine yazın:

    SET SQLCMDEDITOR=notepad

  • :Sıfırla
    Deyimi önbelleğini temizler.

  • : Liste
    Deyimi önbellek içeriğini yazdırır.

  • Değişkenleri

  • :Setvar <var>"value"
    Tanımlar sqlcmdkomut dosyası değişkenleri. Komut dosyası değişkenleri aşağıdaki biçimi var: $(VARNAME).

    Değişken adları büyük/küçük harf duyarsızdır.

    Komut dosyası değişkenleri aşağıdaki şekillerde yapılabilir:

    • Örtülü olarak bir komut satırı seçeneği kullanılarak. Örneğin, -lSQLCMDLOGINTIMEOUT seçeneği ayarlar sqlcmddeğişkeni.

    • Açıkça kullanarak : Setvar komut.

    • Sen önce bir ortam değişkeni tanımlayarak çalıştırmak sqlcmd.

    [!NOT]

    -XSeçeneği ortam değişkenleri için geçirilen dan engeller sqlcmd.

    Eğer kullanılarak tanımlanmış bir değişken : Setvar ve bir ortam değişkeni aynı adı kullanarak tanımlanan değişken : Setvar önceliklidir.

    Değişken adları boşluk karakterleri içermemelidir.

    Değişken adları aynı form $(var) gibi bir değişken ifade olarak olamaz.

    Komut dosyası değişkeni dize değeri boşluk içeriyorsa değeri tırnak işaretleri içine alın. Komut dosyası bir değişkeni için bir değer belirtilmezse, komut dosyası değişkeni bırakılır.

  • : Listvar
    Şu anda ayarlanmış komut dosyası değişkenlerin bir listesini görüntüler.

    [!NOT]

    Komut dosyası değişkenleri tarafından ayarlanmış olan sadece sqlcmdve bu da kullanılarak ayarlanır : Setvar komutu görüntülenir.

  • Çıkış komutları

  • : Hata **<filename> |stderr|STDOUT
    Tüm hata çıktı tarafından belirtilen dosyayı yeniden yönlendirme file name, e stderr veya stdout. Hata komut komut dosyasında birden çok kez görünür. Varsayılan olarak, hata çıktı gönderilen stderr.

    • file name
      Oluşturur ve çıktıyı alırsınız bir dosya açar. Dosya zaten varsa, sıfır bayt olarak kesilecek. Dosya izinleri veya başka nedenlerden dolayı kullanılabilir değilse, çıkış değil açık olması ve son gönderilecek belirtilen veya varsayılan hedef.

    • STDERR
      Geçer hata çıktı stderr akışı. Bu yönlendirildi, hangi akış yönlendirildi hedef hata çıktı alırsınız.

    • STDOUT
      Geçer hata çıktı stdout akışı. Bu yönlendirildi, hangi akış yönlendirildi hedef hata çıktı alırsınız.

  • :Out <filename>| STDERR| stdout
    Oluşturur ve tüm sorgu sonuçları tarafından belirtilen dosyaya yönlendirir file name, e stderr veya stdout. Varsayılan olarak, çıkış gönderilen stdout. Dosya zaten varsa, sıfır bayt olarak kesilecek. Dışarı komut komut dosyasında birden çok kez görünür.

  • :Perftrace <filename>| STDERR| stdout
    Oluşturur ve tüm performans izleme bilgilerini belirtilen dosyaya yönlendirir file name, e stderr veya stdout. Performans izleme çıktısı gönderilir varsayılan olarak stdout. Dosya zaten varsa, sıfır bayt olarak kesilecek. Perftrace komut komut dosyasında birden çok kez görünür.

  • Yürütme denetim komutları

  • :On Errorexit | ignore
    Komut dosyası veya toplu iş yürütme sırasında bir hata ortaya çıktığında gerçekleştirilecek eylemi ayarlar.

    Ne zaman exitseçeneği kullanıldığında, sqlcmdçıkar uygun hata değeriyle.

    Ne zaman ignoreseçeneği kullanıldığında, sqlcmdhatayı yoksayar ve JavaScript veya toplu iş yürütme devam ediyor Varsayılan olarak, hata iletisi yazdırılır.

  • :QUIT
    Neden sqlcmdçıkmak için.

  • [:] EXIT[ (statement) ]
    select deyiminin sonuç gelen bir dönüş değeri olarak kullandığınız sağlar sqlcmd. Sayısal son sonuç satırı ilk sütunu (uzun) bir 4 baytlık tamsayıya dönüştürülür. ms-dos ana süreç ya da işletim sistemi hata düzeyi düşük bayt geçirir. Windows 200 x geçerse bütün 4 baytlık tamsayı. Sözdizimi şöyledir:

    :EXIT(query)

    Örneğin:

    :EXIT(SELECT @@ROWCOUNT)

    De ekleyebilirsiniz Çıkış parametresi bir toplu iş dosyasının bir parçası olarak. Örneğin, komut isteminde şunu yazın:

    sqlcmd -Q "EXIT(SELECT COUNT(*) FROM '%1')"

    sqlcmdYarar ayraçlar arasında her şeyi gönderir () sunucu. Sistem saklı yordam kümesi seçer ve bu değeri verir, sadece seçimi döndürülür. Çıkış**()** deyimi ayraçlar arasında bir şey daha önce her şeyi toplu yürütür ve sonra çıkar dönüş değeri.

    Hatalı sorgu belirtildiğinde, sqlcmddönüş değeri çıkılacak.

    Çıkış biçimleri listesi aşağıdadır:

    • : ÇIKIŞ

    Toplu iş yürütme değil hemen çıkar ve herhangi bir değer döndürür.

    • : ÇIKIŞ)

    Toplu yürütür ve sonra çıkar ve herhangi bir değer döndürür.

    • : EXIT(query)

    Sorgu içerir ve sonra sorgu sonuçlarını verir çıkar toplu yürütür.

    RAISERROR içinde kullanılırsa, bir sqlcmdscript ve 127 durumu geçirilen, sqlcmdve istemciye ileti kimliği dönmek çıkmak. Örneğin:

    RAISERROR(50001, 10, 127)

    Bu hata neden olur sqlcmdkomut sonlandırmak ve ileti Kımlığı 50001 istemciye dönmek.

    Dönüş değerleri -1-99 saklıdır SQL Server; sqlcmdAşağıdaki ek dönüş değerleri tanımlar:

    Dönüş değerleri

    Açıklama

    -100

    Dönüş değeri seçmeden önce hatayla karşılaşıldı.

    -101

    Satır, dönüş değeri seçerken bulunmadı.

    -102

    Dönüş değeri seçerken dönüştürme hatası oluştu.

  • GO count
    go sinyalleri her iki sonunda toplu ve önbelleğe alınmış herhangi bir yürütme Transact-SQLdeyimleri. İçin değer belirtirken count, önbelleğe alınan ifadeler yürütülür countkez, tek bir toplu iş.

  • Çeşitli komutlar

  • : r<filename>
    Çözümler ek Transact-SQLdeyimleri ve sqlcmdkomut dosyasında belirtilen <filename> * * deyimi önbelleğine.

    Dosya içeriyorsa Transact-SQLdeyimleri, arkasından değil go, girmeniz gereken gitmek izleyen satırda : r.

    [!NOT]

    <filename>hangi başlangıç dizinine göre okumak sqlcmdoldu.

    Dosya okumak ve bir toplu sonlandırıcıya karşılaştı sonra yürütülür. Çoklu yayın : r komutları. Dosya içerebilir sqlcmdkomut. Bu toplu Sonlandırıcı içerir go.

    [!NOT]

    Biri tarafından etkileşimli modda görüntülenen satır sayısı artırılacak her : r komutu ile karşılaştı. : R komutu list komutu çıktısında görünecektir.

  • : Serverlist
    Yerel olarak yapılandırılmış sunucular ve ağda yayınlamak sunucuların adlarını listeler.

  • :Connect server_name**\**instance_name[-l timeout] [-U user_name-Ppassword]]
    Örneğine bağlar SQL Server. Ayrıca geçerli bağlantıyı kapatır.

    Zaman aşımı seçenekleri:

    0

    sonsuza kadar bekleyin

    n>0

    n saniye bekle

    SQLCMDSERVER ne komut dosyası değişkeni, geçerli etkin bağlantı yansıtır.

    Eğer timeoutbelirtilmemişse, SQLCMDLOGINTIMEOUT değişkeninin değerini varsayılandır.

    Keşke user_namebelirtilen (bir seçenek olarak, veya bir ortam değişkeni olarak), kullanıcı bir parola girmeniz istenecektir. Bu sqlcmduser veya sqlcmdpassword ortam değişkenleri ayarlarsanız doğru değil. Ne seçenekleri, ne de ortam değişkenleri verdiyse, Windows kimlik doğrulaması modu kullanılan oturum açma. Örneğin bir örneğine bağlanmak instance1, ve SQL Server, myserver, tümleşik güvenlik kullanarak aşağıdakileri kullanabilirsiniz:

    :connect myserver\instance1

    Varsayılan örneğine bağlanmak için myserverkomut dosyası değişkenleri kullanarak aşağıdakileri kullanabilirsiniz:

    :setvar myusername test

    :setvar myservername myserver

    :connect $(myservername) $(myusername)

  • [:] !!< command>
    İşletim sistemi komutları yürütür. Bir işletim sistemi komutu yürütmek için iki ünlem işareti ile bir satır başlatmak (!) işletim sistemi komutu ile izledi. Örneğin:

    :!! Dir

    [!NOT]

    Hangi bilgisayarda komut yürütülür sqlcmdçalışıyor.

  • :XML ON |Kapalı
    Daha fazla bilgi için bkz: "xml çıkış biçimi" Bu konudaki

  • : Yardım
    Listeler sqlcmdkomutlar her komut için kısa bir açıklama ile birlikte.

Sqlcmd dosya adları

sqlcmdGiriş dosyaları ile belirtilebilir -iseçeneğini ya da :rkomut. Çıktı dosyaları ile belirtilebilir -oseçeneğini ya da : hata, : dışarı ve : Perftrace komutları. Bu dosyalarla çalışmak için bazı adımlar şunlardır:

  • : Hata, : dışarı ve : Perftrace ayrı olarak kullanmanız gereken <filename>. Eğer aynı **<filename>**ise havan topları elektronik kullanılan komutların girdileri olarak.

  • Uzaktaki bir sunucuda bulunan bir girdi dosyası gelen denir sqlcmdbir yerel bilgisayar ve dosyanın sürücü dosyası yolu gibi içerir: dışarı c:\OutputFile.txt. Çıktı dosyası, yerel bilgisayarda ve uzak sunucu oluşturulur.

  • Geçerli dosya yolu şunlardır: c:\<filename>, \\<Server>\<pay$>\ <filename> ve "C:\Some Folder\<file name>". Yolda bir boşluk varsa, tırnak işaretleri kullanın.

  • Her yeni sqlcmdoturumu aynı ada sahip varolan dosyaların üzerine.

Bilgi iletileri

sqlcmdsunucu tarafından gönderilen herhangi bir bilgi iletisi yazdırır. Aşağıdaki örnekte, sonra Transact-SQLdeyimlerini yürütülür, bir bilgilendirme iletisi yazdırılır.

Komut isteminde aşağıdakileri yazın:

sqlcmd

At the sqlcmd prompt type:

USE AdventureWorks2012;

GO

enter tuşuna bastığınızda aşağıdaki bilgilendirme iletisi basılır: "Değişen veritabanı içerik için 'AdventureWorks2012'."

Transact-sql sorguları biçiminden çıktı

sqlcmdilk seçme listesinde belirtilen sütun adlarını içeren bir sütun başlığı yazdırır. Sütun adları, sqlcmdcolsep karakter kullanılarak ayrılır. Varsayılan olarak, bu bir alandır. Sütun adını sütun genişliklerinden daha kısa ise, çıkış sonraki sütuna kadar boşluk eklenir.

Bu satır bir dizi çizgi karakterler bir ayırıcı çizgi tarafından takip edilecektir. Aşağıdaki çıktıyı bir örnektir.

Start sqlcmd. sqlcmdKomut isteminde, aşağıdaki komutu yazın:

USE AdventureWorks2012;

SELECT TOP (2) BusinessEntityID, FirstName, LastName

FROM Person.Person;

GO

enter tuşuna bastığınızda aşağıdaki sonuç kümesi retuned.

BusinessEntityID FirstName    LastName

---------------- ------------ ----------

285              Syed         Abbas

293              Catherine    Abel

(2 row(s) affected)

Her ne kadar BusinessEntityIDsütun yalnızca 4 karakter genişliğinde, uzun sütun adı barındırmak için genişletildi. Varsayılan olarak, çıkış 80 karakter sonlandırıldı. Kullanılarak değiştirilebilir -wseçeneğini ya da yanında SQLCMDCOLWIDTH komut dosyası değişkeni ayarı.

xml çıkış biçimi

xml yani çıkış, biçimlendirilmemiş, sürekli bir akış for xml yan tümcesi sonucu çıktı.

xml çıktı beklediğiniz aşağıdaki komutu kullanın: :XML ON.

[!NOT]

sqlcmdhata iletileri normal biçiminde döndürür. Hata iletileri de çıktısı xml metin akışında xml biçiminde olduğuna dikkat edin. Kullanarak :XML ON, sqlcmdbilgilendirme iletilerini görüntülemez.

xml modunu için aşağıdaki komutu kullanın: :XML OFF.

Çünkü xml kapatma komut xml kapatma komut verilmeden önce go komutu görünmemelidir sqlcmdsırt-e doğru satır yönelimli çıktı.

(Akış) xml verileri ve satır kümesi veri karıştırılamaz. xml açık komutu önce verilmiş olan değil, bir Transact-SQLxml akışları çıktılar deyimi yürütüldüğünde, çıkış bozuk olacak. xml on komutunu verilmişse yürütülemiyor Transact-SQLdeyimler normal satır kümeleri çıktı.

[!NOT]

: xml komutu set STATISTICS xml deyimini desteklemiyor.

Sqlcmd en iyi yöntemler

Güvenlik ve verimliliği en üst düzeye çıkarmanıza yardımcı olmak için aşağıdaki yöntemleri kullanın.

  • Tümleşik güvenliği kullan.

  • Kullanım -XOtomatik ortamlarda.

  • Güvenli giriş ve çıkış dosyaları uygun ntfs dosya sistemi izinlerini kullanarak.

  • Performansı artırmak için bir çok yapmak sqlcmdoturum olarak, yerine oturumları bir dizi.

  • Ayarlama zaman aşımı değerleri toplu işlem veya sorgu yürütme bunu beklenenden daha yüksek toplu işlem veya sorgu yürütmek için alacak.

Ayrıca bkz.

Görevler

Sqlcmd yardımcı programını başlatma

Transact-sql komut dosyalarını kullanma sqlcmd çalıştırmak

Veritabanı altyapısı ile sqlcmd bağlanma

Kavramlar

Sqlcmd yardımcı programını kullanın

Sqlcmd Scripting değişkenleri ile kullanma

sqlcmd komut dosyaları sorgu Düzenleyicisi ile düzenleme

Iş adımları yönetmek

CmdExec iş adım oluşturun