Share via


SQLCMD yardımcı programı

The sqlcmd utility lets you enter Transact-SQL statements, system procedures, and script files at the command prompt, in Query Editor in SQLCMD mode, in a Windows script file or in an operating system (Cmd.exe) job step of a SQL Server Agent job.Bu yardımcı program yürütmek OLE DB kullanırTransact-SQLToplu işlemi.

Important noteImportant Note:

SQL Server Management Studio uses the Microsoft .NET FrameworkSqlClient for execution in regular and SQLCMD mode in Query Editor.ZamansqlCmd komut satırından çalıştırılan, OLE DB sağlayıcı. sqlcmd kullanır Çünkü farklı bir varsayılan seçenek uygulanan davranış, aynı Sorguyu Çalıştır görebilirsinizSQL Server Management StudioSQLCMD modu ve,sqlCmd yardımcı programı.

sqlcmd 
[{ { -U login_id [ -P password ] } | –E trusted connection }] 
[ -z new password ] [ -Z new password and exit]
[ -S server_name [ \ instance_name ] ] [ -H wksta_name ] [ -d db_name ]
[ -l login time_out ] [ -A dedicated admin connection] 
[ -i input_file ] [ -o output_file ]
[ -f < codepage > | i: < codepage > [ < , o: < codepage > ] ]
[ -u unicode output] [ -r [ 0 | 1 ] msgs to stderr ] 
[ -R use client regional settings]
[ -q "cmdline query" ] [ -Q "cmdline query" and exit] 
[ -e echo input ] [ -t query time_out ] 
[ -I enable Quoted Identifiers ] 
[ -v var = "value"...] [ -x disable variable substitution ]
[ -h headers ][ -s col_separator ] [ -w column_width ] 
[ -W remove trailing spaces ]
[ -k [ 1 | 2 ] remove[replace] control characters ] 
[ -y display_width ] [-Y display_width ]
[ -b on error batch abort] [ -V severitylevel ] [ -m error_level ] 
[ -a packet_size ][ -c cmd_end ] 
[ -L [ c ] list servers[clean output] ] 
[ -p [ 1 ] print statistics[colon format]] 
[ -X [ 1 ] ] disable commands, startup script, enviroment variables [and exit] 
[ -? show syntax summary]

Komut satırı seçenekleri

  • Oturum açma ile ilgili seçenekleri

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

    Not

    OSQLUSER ortam değişkeni, geriye doğru uyumluluk için kullanılabilir.SQLCMDUSER ortam değişkenini, OSQLUSER ortam değişkeni geçer.Bunun anlamısqlCmd ve osql yan yana kullanılabilir girişim. Aynı zamanda gelir varolanOsql komut devam edecek iş. için

    Hiçbiri,-U seçeneğini ya da -P seçeneği belirtilmişse, sqlcmdMicrosoft. Windows kimlik doğrulaması modu kullanarak bağlanmak çalışır Kimlik doğrulaması Windows hesabını kullanan çalıştıran kullanıcının esassqlCmd.

    ,-U seçeneğiyle (Bu konunu sonraki bölümlerinde açıklanmıştır) - E seçeneği kullanıldığında, bir hata iletisi oluşturulur. ,–U seçeneği birden fazla bağımsız değişken ardından, bir hata iletisi oluşturulur ve program çıkar.

  • -Ppassword
    Bir kullanıcı tarafından belirtilen parola belirtilir.Parolalar büyük/küçük durum duyarlıdır.- U seçeneği kullanılırsa,-P seçeneğini kullandıysanız ve bu SQLCMDPASSWORD ortam değişkeni olmayan bir süredir küme, isteyen kullanıcı için bir parola. sqlcmd,-P seçeneği, komut istemi istemine sonunda kullanıldığında, varsayılan parola (NULL) parola sqlcmd kullanır olmadan.

    Security noteSecurity Note:

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

    Parola isteminin konsola, parola isteminin yazdırarak aşağıdaki gibi görüntülenir: Password:

    Kullanıcı girişi gizlenir.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ıza olanak tanır.Bu nedenle, parola toplu iş dosyaları kodlanmış gerekmez.

    Aşağıdaki örnek ilk komut istemi SQLCMDPASSWORD değişkenini ayarlar ve sonra erişimsqlCmd yardımcı programı. komut istemi istemine:

    SET SQLCMDPASSWORD= p@a$$w0rd

    Security noteSecurity Note:

    Parola kim görebilir herkese görünür olacak monitör.

    Aşağıdaki komut istemi isteminde şunu yazın:

    sqlcmd

    Kullanıcı adı ve parola bileşimini doğru değilse, OLE DB sağlayıcı hata iletisi oluşturur.

    Not

    Geriye dönük uyumluluk için tutulan OSQLPASSWORD ortam değişkeni.The SQLCMDPASSWORD ortam değişkeni önceliklidir OSQLPASSWORD ortam değişkeni üzerinden; bunun anlamısqlCmd ve osql kullanılabilir yan yana parazit ve eski komut dosyaları devam edecek iş. için

    ,-P seçenek - E seçeneğiyle kullanılan, bir hata iletisi oluşturulur.

    ,-P seçeneği birden fazla bağımsız değişken izlenir ve program çıkar ve bir hata iletisi oluşturulur.

  • -E trusted connection
    Yerine kullanıcı adı ve parola, oturum açmak için güvenilir bağlantı kullanır.SQL Server.Varsayılan olarak, -E belirtilen olmadansqlCmd güvenilir bağlantı seçeneği. kullanır

    The -E option ignores possible user name and password environment variable settings such as SQLCMDPASSWORD.,-E seçenek - U seçeneğini veya ile birlikte kullanıldığında -P seçeneği, bir hata iletisi oluşturulur.

  • -z new password
    Parola değiştirme:

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

  • -Z new password and exit
    Parola değiştirme ve çıkış:

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

  • -Sserver_name [ **\**instance_name ]
    Belirtir örnek,SQL ServerBağlanılacak.Ayarlar,sqlCmd komut dosyası kullanan kullanan dosyası kullanan değişkeni SQLCMDSERVER.

    Belirtinserver_namebağlanmak için varsayılan örnek,SQL ServerBu sunucu bilgisayar.Belirtinserver_name \instance_name adlı bir bağlanma örnek, SQL Serversunucu bilgisayar.Sunucu bilgisayar belirtilmişsesqlCmdSQL Serveryerel bilgisayarın., varsayılan örneğine bağlar. Bu seçenek, zaman, yürütmek gereklisqlCmd Uzak bilgisayarda bulunan ağ.

    Belirtmezseniz, birserver_name **\**instance_name başlatmak, sqlcmdSQL Serveriçin denetler ve kullandığı SQLCMDSERVER ortam değişkeni.

    Not

    Geriye dönük uyumluluk için tutulan OSQLSERVER ortam değişkeni.The SQLCMDSERVER ortam değişkeni önceliklidir OSQLSERVER ortam değişkeni üzerinden; bunun anlamısqlCmd ve osql kullanılabilir yan yana parazit ve eski komut dosyaları devam edecek iş. için

  • -Hwksta_name
    İş bir iş istasyonu adı.Bu seçenek ayarlarsqlCmd komut dosyası kullanan kullanan dosyası kullanan değişkeni SQLCMDWORKSTATION.İş istasyonu adı listelenirana bilgisayar adısys.processes sütun katalog görünüm ve saklı yordam sp_who kullanılarak döndürülebilir. Bu seçenek belirtilmezse, geçerli bilgisayar adı varsayılandır.Bu ad, farklı tanımlamak için kullanılabilirsqlCmd oturumları.

  • -ddb_name
    Sorunları birUSE db_namebaşlattığınızda deyimsqlCmd.Bu seçenek ayarlarsqlCmd komut dosyası kullanan kullanan dosyası kullanan değişkeni SQLCMDDBNAME.Bu ilk veritabanını belirtir.Varsayılan değer, oturum açma'nın varsayılan veritabanı özellik.Veritabanı yoksa, bir hata iletisi oluşturulur vesqlCmd exits.

  • -llogintime_out
    Önce saniye sayısını belirtir birsqlCmd oturumu OLE DB sağlayıcı için bir sunucu. için bağlanmaya çalıştığınızda zaman aşımına uğradı Bu seçenek ayarlarsqlCmd komut dosyası kullanan kullanan dosyası kullanan değişkeni SQLCMDLOGINTIMEOUT.Oturum açma için varsayılan saat aşımısqlCmd sekiz saniye. olur Oturum açma saat aşımı 0 ile 65534 arasında bir sayı olmalıdır.Değer verilen sayısal olmayan veya olmayan kalan bu aralık içindesqlCmd bir hata iletisi. oluşturur 0 Değeri, sonsuz için saat aşımını belirtir.

  • -A dedicated admin connection
    Her oturum açtığında içinSQL Serverözel yönetici bağlantısı (DAC) ile.Bu tür bir bağlantı, bir sunucu ile ilgili sorun giderme amacıyla kullanılır.Bu, yalnızca DAC destekleyen sunucu bilgisayarlarda çalışır.DAC, kullanılamıyor,sqlCmd bir hata iletisi sonra da çıkar. oluşturur. DAC hakkında daha fazla bilgi için bkz:Bir özel yönetici bağlantısı kullanma.

  • Giriş/Çıkış seçenekleri

  • -i input_file[**,input_file2...]
    SQL deyimlerini, toplu iş içeriyorsa ya da saklı dosyayı tanımlar.Birden çok dosya, okuyacağı ve sırada işlenen belirtilebilir.Do not use any spaces between file names.sqlcmdwill first check to see whether all the specified files exist.Bir veya birkaç dosya yok
    sqlCmd
    Çıkış. olur -İ ve -Q /-q seçenekleri birlikte kullanılamaz.

    Yol örnekler:

    -iC:\ dosya < >

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

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

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

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

  • -ooutput_file
    Dosya çıktısı alır tanımlarsqlCmd.

    If-u belirtilirse, output_filesaklandığı Unicode biçimi.If the file name is not valid, an error message is generated, and sqlcmd exits.sqlcmd does not support concurrent writing of multiple sqlcmd processes to the same file.Çıktı dosyası bozuk veya yanlış olur.Bkz:-f anahtarı dosya biçimleri. hakkında daha fazla bilgi için Bu dosya yoksa, oluşturulur.Bir dosya bir önceki aynı adısqlCmd oturum yazılmasını.Burada değil, dosya belirtilenSTDOUT file., BirSTDOUT dosyası bu dosyaya değil kullanılacak belirtilir.

    Yol örnekler:

    -oC:\ dosya < >

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

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

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

  • -f < codepage > | i: < codepage > [ <, o: < codepage > ]
    Giriş ve çıkış kodu sayfası belirtir.Kod sayfa numarasını yüklü bir Windows kod sayfa belirten sayısal bir değerdir.Daha fazla bilgi için bkz:Kur, alfabe düzeni ayarları.

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

    • Kod sayfa yok belirtilirsesqlCmd kullanacağı geçerli kod sayfa için giriş ve çıkış dosyaları, giriş dosyası Unicode dosyası değilse dönüştürme gerekli değildir; bu durumda.

    • sqlCmd big-endian hem de little-endian Unicode dosyaları giriş. otomatik olarak algılar ,-u seçenek belirtilmedi, çıkışı her zaman olacaktır little-endian Unicode.

    • Herhangi bir çıktı dosyası belirtilmezse, çıktı kod sayfa konsol kod sayfa olacaktır.Bu konsol doğru görüntülenecek çıktı sağlar.

    • Birden çok girdi dosyalarının aynı kod sayfa olarak kabul edilir.Unicode ve Unicode olmayan girdi dosyası karışabilir.

    Girinchcp cmd.exe. kod sayfa doğrulamak için komut istemi isteminde

  • -u unicode output
    Belirtiroutput_filebiçimi ne olursa olsun, Unicode biçiminde depolanırinput_file.

  • -r[ 0 | 1] msgs to stderr
    Hata iletisi çıkışı ekrana yönlendirir ( stderr ). Değil belirttiğiniz bir parametre veya belirttiğiniz0, yalnızca hata iletileri olan bir önem düzey 11'in ya da daha yüksek yönlendirildi.Belirttiğiniz1, PRINT birlikte çıktı yeniden yönlendirilen tüm hata iletisini.-O kullanıyorsanız hiçbir etkisi yoktur.Varsayılan olarak, iletiler gönderilirSTDOUT.

  • -R use client regional settings
    AyarlarSQL ServerOLE DB sağlayıcı için kullanılacak istemci bölgesel ayarları, para birimi ve tarih ve saat verileri karakter verileri. dönüştürürBölgesel ayarları sunucu varsayılandır.

  • Sorgu yürütme seçenekleri

  • -q" cmdline query "
    Sorgu yürüten,sqlCmd başlar, ancak sorgu bittiğinde çalışıyor. sqlcmd exit Birden çok noktalı virgülle sınırlanmış bir sorgu çalıştırılır.Aşağıdaki örnekte gösterildiği gibi sorguyu çift tırnak işareti kullanın.

    komut istemi istemine:

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

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

    Important noteImportant Note:

    GO Sonlandırıcı sorguda kullanmayın.

    If-bsqlcmd hatası. çıkar Bu seçeneği ile birlikte belirtilir -b açıklanan daha sonra bu konuda.

  • **-Q"**cmdline query " and exit
    Sorgu yürüten,sqlCmd başlatır ve sonra hemen çıkar sqlcmd . Birden çok noktalı virgülle sınırlanmış bir sorgu çalıştırılır.

    Sorguyu çift tırnak işareti kullanmak olarak gösterilen aşağıdaki örnek.

    komut istemi istemine:

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

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

    Important noteImportant Note:

    GO Sonlandırıcı sorguda kullanmayın.

    If-bsqlcmd hatası. çıkar Bu seçeneği ile birlikte belirtilir -b açıklanan daha sonra bu konuda.

  • -e echo input
    Standart çıktı aygıtına giriş komut dosyaları yazma ( stdout ).

  • -I enable Quoted Identifiers
    Bağlantı seçeneği küme QUOTED_IDENTIFIER ON olarak ayarlar.Varsayılan olarak kapalı küme.Daha fazla bilgi için bkz:küme QUOTED_IDENTIFIER (Transact-SQL).

  • -tquerytime_out
    Komutunu (veya SQL deyim) zaman aşımına uğramadan önce saniye cinsinden belirtir.Bu seçenek ayarlarsqlCmd komut dosyası kullanan kullanan dosyası kullanan değişkeni SQLCMDSTATTIMEOUT., Birtime_outdeğer belirtilmemişse, komut var olmayan saat aşımına uğrar.The querytime_out must be a number between 1 and 65535.Değer verilen sayısal olmayan veya olmayan kalan bu aralık içindesqlCmd bir hata iletisi. oluşturur

    Not

    Gerçek saat aşımı değeri tarafından belirtilen değişebilirtime_outdeğer birkaç saniye.

  • -vvar*=value[ var=value...]
    Creates a sqlcmdscripting variable that can be used in a sqlcmd script.Değer boşluk içeriyorsa değeri tırnak işaretleri içine alın.Birden çok belirtebilirsiniz
    var*="values" values.Herhangi bir değer belirtilmezse, hatasqlCmd bir hata iletisi sonra da çıkar. oluşturur.

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

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

  • -x disable variable substitution
    Neden oluyorsqlCmd komut dosyası kullanan kullanan dosyası kullanan değişkenlerinin. yoksaymak için Birçok INSERT deyimleri gibi $(variable_name). normal değişkenleri aynı biçimde olan bir dize içeren bir komut dosyası içeriyorsa, yararlıdır

  • Biçimlendirme seçenekleri

  • -hheaders
    Sütun başlıkları arasındaki yazdırmak için satır sayısını belirtir.Her seferinde başlıkları yazdırmak için varsayılandır küme sorgu sonuçlar.Bu seçenek ayarlarsqlCmd komut dosyası kullanan kullanan dosyası kullanan değişkeni SQLCMDHEADERS.Kullanımı-1 üstbilgi yok yazdırılmalıdır belirtmek için. Neden olan geçersiz bir değersqlCmd bir hata iletisi ve çıkış.

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

  • -wcolumn_width
    Çıktı için ekranın genişliğini belirtir.Bu seçenek ayarlarsqlCmd komut dosyası kullanan kullanan dosyası kullanan değişkeni SQLCMDCOLWIDTH.Sütun genişliğini 8'den 65536'den büyük bir sayı olmalıdır.Belirtilen sütun genişliğini değil kalan bu aralık içindesqlCmd oluşturur ve hata iletisi.Varsayılan genişliği 80 karakter olabilir.Bu, bir çıktı satırı belirtilen sütun genişliğini aşarsa, sonraki satıra kaydırılır.

  • -W remove trailing spaces
    Bu seçenek, bir sütundan izleyen boşlukları kaldırır.Bu seçeneği kullanmak-s seçeneği, başka bir uygulama. için dışa aktarılması için veri hazırlama Kullanılamaz-y or -Y options.

  • -k[ 1 | 2 ] remove[replace] control characters
    Tüm denetim karakterleri, sekmeler ve çıktı gelen yeni satır karakterlerini kaldırır.Bu sütun veri geri döndüğünde biçimlendirmeyi korur.1 Belirtilirse, denetim karakterleri tek boşluk değiştirilir.2 Belirtilirse, ardışık denetim karakterleri tek boşluk değiştirilir.

  • -ydisplay_width
    AyarlarsqlCmd komut dosyası kullanan kullanan dosyası kullanan değişkeni SQLCMDMAXFIXEDTYPEWIDTH.Varsayılan = 0 (ayarlanmamış).Bu, büyük bir değişken uzunluklu veri türleri için döndürülen karakter sayısı sınırları:

    • varchar(max)

    • nvarchar(max)

    • varbinary(max)

    • xml

    • UDT (kullanıcı tanımlı veri türleri)

    • text

    • ntext

    • image

    Not

    UDTs uygulamaya bağlı olarak sabit uzunlukta olabilir.Bu sabit uzunlukta UDT uzunluğu kısa ise,display_width, the UDT değerini döndürdü etkilenmez.Ancak uzunluğu uzunsadisplay_width, çıkış atılır.

    Display_width 0 ise, çıkış sırasında 1 MB kesildi.Kullanabileceğiniz: kesme çıktının engellemek için açık XML komut.: XML açık komutu bu konunun ilerisinde açıklanan.

    Important noteImportant Note:

    Use the -y 0 option with extreme caution because it may cause serious performance issues on both the server and the network, depending on the size of data returned.

  • -Ydisplay_width
    AyarlarsqlCmd komut dosyası kullanan kullanan dosyası kullanan değişkeni SQLCMDMAXVARTYPEWIDTH.Varsayılan 256'dur.Aşağıdaki veri türleri için döndürülen karakter sayısı sınırları:

    • char

    • nchar

    • varchar(n)Burada,1<n<8000

    • nvarchar(n)burada1<n<4000

    • sql_variant

  • Hata raporlama seçenekleri

  • -bon error batch abort
    BelirtirsqlCmd çıkar ve bir hata oluştuğunda DOS ERRORLEVEL değerini döndürür.DOS ERRORLEVEL değişkeni için döndürülen değer1 , SQL Serverhata iletisi 10'dan büyük bir önem düzey vardır; aksi takdirde, değer döndürülür 0 . ,-Vek olarak seçenek küme-b,sqlCmd raporu hata kullanarak değerleri önem düzey, -V.Command prompt batch files can test the value of ERRORLEVEL and handle the error appropriately.sqlcmd does not report errors for severity level 10 (informational messages).

    ,sqlcmdkomut dosyası kullanan kullanan dosyası kullanan içeren bir yanlış açıklama sözdizimi hatası veya komut dosyası kullanan kullanan kullanan dosyası kullanan değişkeni eksik, ERRORLEVEL değeri döndürdü. 1.

  • -V severitylevel
    Kontrol için kullanılan, önem düzeyi küme ERRORLEVEL değişkeni.Önem düzeyleri daha az eşit veya bu hata iletileri küme ERRORLEVEL değeri.0'dan küçük değer 0 olarak bildirilir.Toplu iş ve CMD dosyaları, ERRORLEVEL değişkeni değerini test etmek için kullanılabilir.

  • -merror_level
    Denetimler, hata iletileri gönderilirSTDOUT.Bu düzeye eşit veya daha küçük gönderilen bir önem düzey olan iletiler.Bu değer olduğunda küme için-1, bilgilendirme iletileri de dahil olmak üzere tüm iletiler gönderilir.Arasında boşluk verilmez-m and -1.For example, -m-1 is valid, and -m-1 is not.

    Bu seçenek ayrıca ayarlarsqlCmd komut dosyası kullanan kullanan dosyası kullanan değişkeni SQLCMDERRORLEVEL.Bu değişken varsayılan 0 değeri vardır.

  • Çeşitli Seçenekler

  • -apacket_size
    Farklı boyutta bir paket ister.This option sets the sqlcmd scripting variable SQLCMDPACKETSIZE.packet_size must be a value between 512 and 32767.Varsayılan = 4096.Daha büyük paket boyutu, SQL deyimlerini GO komutları arasında çok fazla olan komut dosyası yürütme performansını artırabilirsiniz.Daha büyük paket boyutu isteyebilir.Bununla birlikte, istek reddedilir,sqlCmd Sunucu varsayılan kullandığı için paket boyutu.

  • -ccmd_end
    toplu iş iş Sonlandırıcı belirtir.Varsayılan olarak, komut sonlandırıldı ve gönderilenSQL Serveryazarak "GO" sözcüğü bir tek başına.Zaman toplu iş iş Sonlandırıcı, sıfırlama kullanmayınTransact-SQLayrılmış anahtar sözcükleri veya olsa bile, ters eğik çizgi. önünde işletim sistemine özel anlamı olan karakterleri

  • -L [ c ] list servers[clean output]
    Yerel olarak yapılandırılmış sunucu bilgisayarları ve ağ üzerinde yayın sunucu bilgisayarların adlarını listeler.Bu parametre, diğer parametreler birlikte kullanılamaz.Listelenebilir sunucu bilgisayarlarının sayısı 3000 ' dir.Sunucu listesi arabelleğinin boyutu nedeniyle kesilirse bir uyarı iletisi görüntülenir.

    Not

    Yayın, ağda, yapısısqlCmd zamanında bir yanıt alabilirsiniz tüm sunucuların.Bu nedenle, döndürülen sunucularının listesi için bu seçeneğin her başlatılışında değişebilir.

    İsteğe bağlı parametre c belirtilmezse, çıktı sunucuları görüntülenir: Başlık satırı ve her sunucu satırına listeleniyor olmadan Baştaki boşlukları. Bu temiz çıktı olarak adlandırılır.Temiz çıktı, komut dosyası kullanan kullanan dosyası kullanan dili işleme performansını artırır.

  • -p[ 1 ] print statistics[colon format]
    Her bir sonuç kümesi için performans istatistiklerini yazdırır.Performans istatistiklerini biçimi örneği aşağıdadır:

    Network packet size (bytes): n

    x xact[s]:

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

    Yeri:

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

    t1 = Tüm hareketler için toplam saat.

    t2= Ortalama saat tek bir hareket.

    t3= İşlem başına ortalama sayısı.

    Her zaman milisaniye cinsinden olur.

    , İsteğe bağlı parametre1 belirtilmemişse, iki nokta üst üste virgülle ayrılmış biçimde, bir elektronik tabloya kolayca içe veya işlem tarafından script. istatistikleri çıktı biçimi olan

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

  • -X [ 1 ] disable commands, startup script, enviroment variables [and exit]
    Sistem güvenliğini tehlikeye atabilir komutları devre dışı bırakır,sqlCmd yürütülecek olan bir toplu iş dosyaDevre dışı bırakılmış komutları yine de tanınır;sqlCmd bir uyarı iletisi yayınlar ve devam eder., İsteğe bağlı parametre1 belirtilmemişse, bir hata iletisi sonra da çıkar. sqlcmd oluşturur. Aşağıdaki komutları devre dışı bırakılır,-X seçeneği kullanılır:

    • ED

    • **!!**command

    ,-Xseçeneği belirtilmişse, ortam değişkenleri arasında geçirilen için engellersqlCmd.Ayrıca, başlangıç komut dosyası kullanan kullanan dosyası kullanan tarafından yürütülen SQLCMDINI komut dosyası kullanan kullanan dosyası kullanan değişkeni kullanarak belirtilen engeller.Daha fazla bilgisqlcmddeğişkenler, komut dosyası kullanan kullanan dosyaları Bkz:komut dosyası kullanan kullanan dosyası kullanan değişkenleri ile sqlCmd kullanma.

  • -? show syntax summary
    Sözdizimi özetini görüntüler.sqlCmd seçenekleri.

Remarks

Seçenekler sözdizimi bölümünde gösterilen sırada kullanılabilir gerek yoktur.

Zaman çok sayıda sonuçlar döndürdü,sqlCmd her sonuçlar arasına boş bir satır yazdırılır küme, toplu iş iş.Ayrıca, "<x>etkilenen satırların "yürütülen ifadesine geçerli değilse, ileti görüntülenmez.

KullanmasqlCmd etkileşimli olarak yazın sqlcmd biri veya daha önce bu konuyu. içinde açıklanan seçeneklerin komut istemi satırında Daha fazla bilgi için, bkz. Sqlcmd yardımcı programını kullanma

Not

Seçenekleri-L, -Q, -Z or-icause sqlcmd to exit after execution.

Toplam uzunluğusqlCmd tüm bağımsız değişkenler ve genişletilmiş değişkenleri, komut satırı komutunu (Cmd.exe) ortamında, Cmd.exe. işletim sistemi tarafından belirlenir ise

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

  1. Sistem-düzey ortam değişkenlerini.

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

  3. Kabuk komutu ( küme X = Y) sqlcmd çalıştırmadan önce komut istemi isteminde küme.

  4. sqlcmd-v X=Y

  5. : Setvar X Y

Not

Ortam değişkenlerini, içinde görüntülemek içinDenetim MasasıSistemaçın ve Gelişmiş sekmesini tıklatın.

SQLCmd komut dosyası kullanan kullanan dosyası kullanan değişkenleri

Variable

İlgili anahtar

R/W

Default

SQLCMDUSER

-U

R

""

SQLCMDPASSWORD

-P

--

""

SQLCMDSERVER

-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 küme**: Bağlantı**

kullanılır.

R değeri yalnızca program başlatma sırasında saat ayarlanabilir gösterir.

R/W gösteren değeri kullanılarak değiştirilebilirsetvar komut ve diğer komutları etkilediği yeni değeri.

SQLCmd komutlar

Ek olarakTransact-SQLiçindeki ifadelerisqlCmd, aşağıdaki komutlar kullanılabilir de:

GO [count]

: Liste

[:] RESET

:ERROR

[:] ED

: Out

[:] !!

: Perftrace

[:] QUIT

: Bağlan

[:] EXIT

: Hata hakkında

: r

: Yardım

: ServerList

:XML [ON | OFF]

: Setvar

: Listvar

Birini kullandığınızda unutmayınsqlCmd komutları:

  • TümsqlCmd komutları, GO dışında gerekir öneki bir iki nokta üst üste (:).

    Important noteImportant Note:

    Var olan geriye dönük uyumluluk sağlamak içinOsql komut dosyaları, bazı komutlar tanınan iki nokta üst üste.Bu belirtilir [ : .

  • sqlCmd komutları, yalnızca, bir. başında görünürse tanınır.

  • TümsqlCmd komutlar büyük/küçük durum duyarlı olan.

  • Her komutu ayrı bir satırda olmalıdır.Bir komut olarak izlenemiyor birTransact-SQLdeyim veya başka bir komut.

  • Komutlar hemen yürütülür.Bunlar değil koymak yürütme arabelleğiTransact-SQLdeyimler şunlardır.

  • Düzenleme komutları

  • [:] ED
    Metin düzenleyicisini başlatır.Bu düzenleyici, geçerli düzenleme için kullanılabilirTransact-SQLtoplu iş iş işlemi veya son yürütülen toplu iş iş.Son yürütülen toplu iş düzenlemek içinED hemen son toplu iş tamamlandığında yürütme. komut girilmelidir.

    Metin Düzenleyicisi SQLCMDEDITOR ortam değişkeni tarafından tanımlanır.Varsayılan Düzenleyici 'Düzen' dir.Düzenleyici, değiştirmeye küme SQLCMDEDITOR ortam değişkeni.Örneğin, düzenleyici için kümeMicrosoftNot Defteri, komut istemi istemine yazın:

    SET SQLCMDEDITOR=notepad

  • [:] RESET
    Temizler deyim önbellek.

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

  • Variables

  • :Setvar <var> [ "value" ]
    TanımlarsqlCmd komut dosyası kullanan kullanan dosyası kullanan değişkenlerinin.komut dosyası kullanan kullanan dosyası kullanan değişkenleri aşağıdaki biçime sahip: $(VARNAME).

    Değişken adları büyük/küçük durum duyarlı'dır.

    komut dosyası kullanan kullanan dosyası kullanan değişkenleri aşağıdaki yöntemlerle ayarlanabilir:

    • Dolaylı olarak bir komut satırı seçeneğini kullanmak.Örneğin-l SQLCMDLOGINTIMEOUT sqlcmd değişken. seçenek ayarlar

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

    • Tanımlayarak çalıştırmadan önce bir ortam değişkenisqlCmd.

    Not

    The -X option prevents environment variables from being passed on to sqlcmd.

    Yoksa bir değişken kullanarak tanımlanan**: Setvar** ve bir ortam değişkeni olan kullanılarak tanımlanan değişken aynı adı : Setvarönceliği. alıyor

    Değişken adları değil içermeli boşluk karakterleri.

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

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

  • : Listvar
    Şu anda küme olan komut dosyası kullanan kullanan dosyası kullanan değişkenlerinin listesini görüntüler.

    Not

    Yalnızca komut dosyası kullanan kullanan dosyası kullanan ayarlanan değişkenlersqlCmdve kullanılarak küme olan : Setvar komutu görüntülenir.

  • Çıkış komutları

  • :ERROR <filename>|STDERR|STDOUT
    Tüm hata çıktı dosyası tarafından belirtilen yeniden yönlendirmefile name, to
    STDERR** or to stdout.The Error command can appear multiple times in a script.Varsayılan olarak, hata çıktı gönderildiğiSTDERR.

    • file name
      Oluşturur ve çıktısını aldığınız bir dosyayı açar.Dosya zaten varsa, sıfır bayt kesilecek.Dosya izinleri veya başka bir nedenle kullanılamıyorsa, çıkış değil geçmiş ve son gönderileceği belirtilen veya varsayılan hedefi.

    • STDERR
      Geçiş hatası çıktıSTDERR stream.Bu yeniden akış yönlendirildi hedef hata çıktı alırsınız.

    • STDOUT
      Geçiş hatası çıktıSTDOUT stream.Bu yeniden akış yönlendirildi hedef hata çıktı alırsınız.

  • :Out <filename>| STDERR| STDOUT
    Oluşturur ve tüm sorgu yönlendirir sonuçlar tarafından belirtilen dosyayafile name, toSTDERR or to stdout.Varsayılan olarak, çıktı gönderildiğiSTDOUT.Dosya zaten varsa, sıfır bayt kesilecek.The Out command can appear multiple times in a script.

  • :Perftrace <filename>| STDERR| STDOUT
    Oluşturur ve tüm performans izleme bilgi tarafından belirtilen dosyaya yeniden yönlendirirfile name, toSTDERR or to stdout.Performans izleme varsayılan olarak çıktı gönderildiğiSTDOUT.Dosya zaten varsa, sıfır bayt kesilecek.The Perftrace command can appear multiple times in a script.

  • Denetim komutları yürütme

  • :On Error[ exit | ignore]
    Komut dosyası veya toplu iş iş iş yürütülürken bir hata ortaya çıktığında gerçekleştirilecek eylem belirler.

    When the exitoption is used, sqlcmd exits with the appropriate error value.

    ,ignoreseçeneği kullanıldığında,sqlCmd hatayı gözardı eder ve toplu iş veya komut yürütme devam eder. Varsayılan olarak, bir hata iletisi yazdırılır.

  • [:] QUIT
    Neden oluyorsqlCmd to exit.

  • [:] EXIT[ (statement) ]
    Sonucu, bir SELECT kullanmanıza olanak tanır deyim gelen bir dönüş değeri olaraksqlCmd.Sonuç ilk satırının ilk sütun, bir 4 baytlık tamsayı (uzun) dönüştürülür.MS-DOS alt bayt üst işleminin ya da işletim sistemi hata düzey geçirir.Windows 200 x geçiş tam 4 baytlık bir tamsayı.Sözdizimi şöyledir:

    :EXIT(query)

    Örneğin:

    :EXIT(SELECT @@ROWCOUNT)

    De ekleyebilirsinizEXIT olarak bir toplu iş dosya parametre Örneğin, komut istemi istemine şunu yazın:

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

    The sqlcmd utility sends everything between the parentheses () to the server.sistem saklı yordamı bir seçer ve bir değer döndürür, yalnızca seçilen döndürülür.The EXIT**()** statement with nothing between the parentheses executes everything before it in the batch and then exits without a return value.

    Yanlış bir sorgu belirtilirsesqlCmd çıkacak bir dönüş değeri.

    EXIT biçimlerinin listesi aşağıdadır:

    • : ÇIKIŞ

    toplu iş iş iş, yürütmek ve hemen çıkar ve herhangi bir değer döndürür.

    • : ÇIKIŞ)

    toplu iş iş iş, yürütür ve çıkar ve herhangi bir değer döndürür.

    • : EXIT(query)

    Sorgu içerir ve sorgu sonuçlarını döndürür, sonra çıkar, sonra toplu iş iş işlemi yürütür.

    , Bir RAISERROR içinde kullanılan birsqlCmd komut dosyası ve bir 127 durumuna neden oldu, sqlcmd Çık ve dön geri istemci. için ileti kimliği Örneğin:

    RAISERROR(50001, 10, 127)

    Bu hataya nedensqlCmd sonuna kadar komut dosyası ve ileti kimliği 50001 dönmek istemci. için

    Dönüş değeri olarak -1-99 için ayrılmıştırSQL Server;sqlCmd aşağıdaki ek dönüş değerleri tanımlar:

    Dönüş değerleri

    Açıklama

    -100

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

    -101

    Dönüş değeri'ni seçerken hiçbir satır bulunamadı.

    -102

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

  • GO [count]
    GO sinyalleri her iki sonuna bir toplu iş ve önbelleğe alınan, yürütmeTransact-SQLifadeler.Zaman için bir değer belirlemecountönbelleğe alınan ifadeleri yürütülen,countzaman, tek bir toplu iş.

  • Çeşitli komutlar

  • :r <filename>
    Parses additional Transact-SQL statements and sqlcmd commands from the file specified by **<filename>**into the statement cache.

    If the file contains Transact-SQL statements that arenot followed by GO,you must enter GO on the line that follows :r.

    Not

    <filename>Okuma, başlangıç dizinine göresqlCmd was run.

    Dosya okuyacağı ve bir toplu iş Sonlandırıcı karşılaştı sonra çalıştırılır.Sizin sorun birden fazla**:r** komutları. Dosyanın tüm dahilsqlCmd komut. Bu toplu iş iş Sonlandırıcı içerirGO.

    Not

    Etkileşimli modda görüntülenen satır sayısı için birer birer artırılır her:r komutu ile karşılaştı.The :r command will appear in the output of the list command.

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

  • : Bağlan server_name[**\**instance_name] [-l timeout] [-U user_name [-P password]]
    Bağlanan bir örnek,SQL Server.Ayrıca geçerli bağlantıyı kapatır.

    saat aşımı seçeneği:

    0

    sonsuza kadar bekleyin.

    n>0

    n saniye bekleyin.

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

    Iftimeoutbelirtilmemişse, SQLCMDLOGINTIMEOUT değişkenin değeri olan varsayılan.

    If only user_nameis specified (either as an option, or as an environment variable), the user will be prompted to enter a password.Bu SQLCMDUSER veya SQLCMDPASSWORD ortam değişkenlerini ayarlamak, doğru değil.Windows kimlik doğrulaması modu seçenekleri ya da ortam değişkenleri verdiyse, kullanılan oturum açma için.Bağlanmak, örneğin bir örnek,instance1, ofSQL Server,myserver, tümleşik güvenliği'ni kullanarak aşağıdakileri kullanabilirsiniz:

    :connect myserver\instance1

    Varsayılan örneğine bağlanmak içinmyserverkomut dosyası kullanan kullanan dosyası kullanan 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 sistem komutu çalıştırmak için iki ünlem işareti bir satır başlatmak ( !!) ardından işletim sistemi komutu.Örneğin:

    :!!Dir

    Not

    Komut, bilgisayarda çalıştırılansqlCmd olduğu çalışan.

  • :XML [ON | OFF]
    Daha fazla bilgi için "XML çıktı biçimi," Bu konuda daha sonra bakın.

  • : Yardım
    ListelersqlCmd birlikte kısa bir açıklama her komutu. komutları

SQLCmd dosya adları

sqlCmdile girdi dosyası belirtilebilir seçeneğini ya da : r komut. Çıktı dosyaları ile belirtilebilir-o seçeneğini ya da : hata , : ilk ve : Perftrace komutları. Aşağıda, bu dosyalarla çalışmak için bazı yönergeler verilmiştir:

  • : Hata, : Çıkış ve : Perftrace ayrı kullanması gereken <filename>., Aynı**<filename>**ise kullanılan girdileri komutlarının intermixed.

  • Bir uzak sunucuda bulunan bir girdi dosyası tarafından verilirsqlCmdyerel bilgisayar ve dosyayı içeren sürücü dosyası yol gibi: c:\OutputFile.txt. öğrenin Çıktı dosyası yerel bilgisayarda ve uzak sunucuda oluşturulur.

  • Geçerli dosya yollarını içerir: C:\<filename>,\\<Server>\<Share$>\<filename> and "C:\Some Folder\<file name>".Yolda bir alan varsa, tırnak işaretleri kullanın.

  • Her yenisqlCmd oturum aynı adları. sahip varolan dosyaların üzerine

Bilgi iletileri

sqlCmd gönderilen. tarafından herhangi bir bilgi iletisi yazdırır. Aşağıdaki örnekte, sonraTransact-SQLdeyimleri çalıştırılır, bir bilgi iletisi yazdırılır.

komut istemi isteminde aşağıdakini yazın:

sqlcmd

At the sqlcmd prompt type:

USE AdventureWorks;

GO

ENTER tuşuna bastığınızda aşağıdaki bilgi iletisini yazdırılır: "'AdventureWorks' için içerik değiştirilen veritabanı".

Transact-SQL sorguları alınan çıktı biçimi

sqlCmd ilk seçin listesinde. içinde belirtilen sütun adlarını içeren bir sütun başlığı yazdırır. Sütun adlarını SQLCMDCOLSEP karakteri kullanarak ayrılır.Varsayılan olarak, bu bir alandır.Sütun adını sütun genişliğinden daha kısa ise, çıkış sonraki sütuna kadar boşluk doldurulur.

Bu satır bir dizi çizgi karakterleri bir ayırıcı çizgi izler.Aşağıdaki çıktıyı bir örnek göstermektedir.

BaşlatmasqlCmd.AtsqlCmd komut istemi isteminde aşağıdaki komutu yazın:

USE AdventureWorks;

SELECT TOP (2) ContactID, FirstName, LastName

FROM Person.Contact;

GO

Ne zaman, ENTER tuşuna basın, aşağıdaki sonucu küme retuned.

ContactID FirstName LastName

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

1 Syed Abbas

2 Catherine Abel

(2 row(s) affected)

DeContactIDsütun yalnızca 4 karakter genişliğinde ve genişletilmiş için uygun uzun sütun adı.Varsayılan olarak, 80 karakter çıktı sonlandırıldı.Bu kullanılarak değiştirilebilir-w seçeneğini veya komut dosyası kullanan kullanan dosyası kullanan değişkeni. the SQLCMDCOLWIDTH ayarlayarak

XML çıktı biçimi

XML diğer bir deyişle bir FOR XML yan tümce sürekli bir akış çıktı, biçimlendirilmemiş, sonucudur çıktı.

XML çıktısı düşünüyorsanız, aşağıdaki komutu kullanın: :XML ON.

Not

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

İçin küme XML modunu kapatmak için aşağıdaki komutu kullanın: :XML OFF.

The GO komut önce XML OFF komut için XML OFF komut verildiği değil görüleceğinisqlCmd yeniden satır yönelimli çıktı.

(Akışı) XML verileri ve veri kümesi karıştırılamaz.XML ON komutunu önce verilmiş olan değil, birTransact-SQL, XML akışları verir deyim yürütüldüğünde, çıktı gönderdiğinizde.XML açık komut verilmeden, olamaz yürütmekTransact-SQLifadeleri, çıkış normal satır kümesi.

Not

The :XML command does not support the SET STATISTICS XML statement.

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üvenlik kullanın.

  • Kullanımı-X Otomatik ortamları.

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

  • Performansı artırmak için bir daha fazla yapmaksqlCmd oturumu yerine yapabildiğiniz gibi bir dizi oturum.

  • toplu iş iş iş veya sorgu yürütmek için sürecek beklenenden daha yüksek toplu iş iş iş veya sorgu yürütme saat aşımı değerlerini ayarlar.