osql yardımcı programı

osqlYarar girmenize izin veren Transact-SQLdeyimleri, sistem işlemleri ve komut dosyaları. Bu yardımcı program odbc sunucuyla iletişim kurmak için kullanır.

Önemli notÖnemli

Bu özellik, gelecekteki bir sürümüne kaldırılacak SQL Server. Yeni geliştirme çalışmalarında bu özelliği kullanmaktan kaçının ve şu anda özelliğini kullanan uygulamaları değiştirmek planlıyoruz. Kullanım sqlcmdyerine. Daha fazla bilgi için, bkz. Sqlcmd yardımcı programı.

Sözdizimi

osql
[-?] |
[-L] |
[
  {
     {-Ulogin_id [-Ppassword]} | –E }
     [-Sserver_name[\instance_name]] [-Hwksta_name] [-ddb_name]
     [-ltime_out] [-ttime_out] [-hheaders]
     [-scol_separator] [-wcolumn_width] [-apacket_size]
     [-e] [-I] [-D data_source_name]
     [-ccmd_end] [-q "query"] [-Q"query"]
     [-n] [-merror_level] [-r {0 | 1}]
     [-iinput_file] [-ooutput_file] [-p]
     [-b] [-u] [-R] [-O]
]

Bağımsız değişkenler

  • -?
    Sözdizimi özetini görüntüler osqlanahtarlarını.

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

    [!NOT]

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

  • -Ulogin_id
    Kullanıcı oturum açma kimliği. Oturum açma kimlikleri büyük/küçük harf duyarlıdır.

  • -Ppassword
    Kullanıcı tanımlı bir parola değil. Eğer -Pseçenek kullanılmaz, osqliçin parola ister. Eğer -Psonunda herhangi bir parola olmadan komut satırı seçeneği kullanılır osqlvarsayı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.

    Parolalar büyük/küçük harf duyarlıdır.

    osqlpassword ortam değişkeni geçerli oturum için varsayılan parola ayarlamanıza olanak sağlar. Bu nedenle, zor bir şifre toplu iş dosyalarına kod gerekmez.

    Bir parola belirlemezseniz -Pseçeneği, osqlosqlpassword değişkeni denetler. Hiçbir değer ayarlanırsa, osql, null varsayılan şifre kullanır. Aşağıdaki örnek komut isteminde osqlpassword değişkenini ayarlar ve sonra erişir osqlyarar:

    C:\>SET OSQLPASSWORD=abracadabra
    C:\>osql 
    
    C:\>SET OSQLPASSWORD=abracadabra
    C:\>osql 
    
    Güvenlik notuGüvenlik Notu

    Parolanızı maskelemek için değil belirtmek -Pseçeneği ile birlikte -Useçeneği. Bunun yerine belirttikten sonra osqlile birlikte -Useçeneği ve diğer anahtarlar (değil belirtmek -P), enter tuşuna basın ve osqlsen-ecek-e sevketmek için parola. Bu yöntem, girildiği zaman şifrenizi maskeli sağlar.

  • -E
    Güvenilen bir bağlantı, parola istemek yerine kullanır.

  • -Sserver_name[ **\instance_name]
    Örneğini belirtir SQL Serverbağlanmak için. Belirtmek server_name varsayılan örneğine bağlanmak için SQL ServerBu sunucuda. Belirtmek server_name
    \**instance_name adlandırılmış bir örneğine bağlanmak için SQL ServerBu sunucuda. Hiçbir sunucu belirtilmemişse, osqlvarsayılan örneğine bağlar SQL ServerYerel bilgisayarda. Bu seçenek yürütürken gereklidir osqlağdaki uzak bir bilgisayardan.

  • -Hwksta_name
    Bir iş istasyonu adıdır. İş istasyonu adı saklanan sysprocesses.hostname ve tarafından görüntülenen sp_who. Bu seçenek belirtilmezse, geçerli bilgisayar adı varsayılır.

  • -ddb_name
    Bir kullanım sorunları db_name deyimi ne zaman osql başlatılır.

  • -ltime_out
    Önce saniye sayısını belirtir bir osqloturumu zaman aşımına uğradı. Oturum açma için varsayılan zaman aşımı değeri osqlsekiz saniye.

  • -ttime_out
    Saniye önce bir komut zaman aşımına belirtir. Eğer bir time_outdeğer belirtilmezse, komut zaman aşımına yapın.

  • -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. Üstbilgi yazdırılacağını belirtmek için -1 kullanın. –1 Kullanılırsa, parametre ayarı arasında hiçbir boşluk olmalıdır (-h-1, -h -1).

  • -scol_separator
    Varsayılan olarak boş bir alanı sütun ayırıcı karakteri belirtir. İşletim sistemine özel anlamı olan karakterleri kullanmak için (örneğin, |; & < >), karakteri çift tırnak işareti ('') içine alın.

  • -wcolumn_width
    Çıkış ekran genişliğini ayarlamak kullanıcı sağlar. Varsayılan değer 80 karakter olabilir. Çıkış satır maksimum ekran genişliğini ulaşmıştır, birden çok satıra bozuldu.

  • -apacket_size
    Farklı büyüklükteki bir paketini talep etmenize izin verir. İçin geçerli değerler packet_size512-65535 vardır. Varsayılan değer osqlsunucu varsayılan. Artan paket boyutu büyük komut dosyası yürütme sql deyimleri git komutları arasındaki miktarı önemli olduğu performansı artırabilir. Microsofttest 8192 genellikle toplu kopyalama işlemleri hızlı ayarını gösterir. Bir büyük paket boyutu talep edilebilir, ama osqlvarsayılan sunucu varsayılan istek verilirse.

  • -e
    Giriş yankıları.

  • -I
    Quoted_ıdentıfıer bağlantı seçeneği ayarlar.

  • -Ddata_source_name
    odbc sürücüsü kullanarak tanımlanan bir odbc veri kaynağına bağlanır SQL Server. osqlBağlantısını kullanan veri kaynağında belirtilen seçenekler.

    [!NOT]

    Bu seçenek, diğer sürücüleri için tanımlanmış veri kaynakları ile çalışmaz.

  • -ccmd_end
    Komut Sonlandırıcı belirtir. Varsayılan olarak, komut sonlandırıldı ve gönderilen SQL Servergirerek git bir satırda tek başına. Komut terminator'ı sıfırladığınızda, kullanmadığı Transact-SQLbir eğik veya önünde olup sözcük veya işletim sistemine özel anlamı olan karakterleri aittir.

  • -q "query"
    Bir sorgu yürütür ne zaman osqlbaşlar, ama değil çıkış osqlne zaman sorgu tamamlıyor. (Not sorgu deyimi go içermemesi gerekir). Bir toplu iş dosyası bir sorgudan yayın % değişkenlerini veya ortam değişkenleri % kullanın. Örneğin:

    SET table=sys.objects
    osql -E -q "select name, object_id from %table%"
    
    SET table=sys.objects
    osql -E -q "select name, object_id from %table%"
    

    Kullan sorgu çift tırnak ve tek tırnak bir şey sorguda gömülü.

  • -Q"query"
    Bir sorgu yürütür ve hemen çıkar osql. Kullan sorgu çift tırnak ve tek tırnak bir şey sorguda gömülü.

  • -n
    Numaralandırma kaldırır ve komut istemi simgesi (>) giriş satırlarında.

  • -merror_level
    Hata iletilerinin görünümünü özelleştirir. İleti numarası, durumu ve hata düzeyi belirli önem düzeyi veya daha yüksek hatalara görüntülenir. Hiçbir şey için belirtilen düzeyi düşük seviyeleri hataları görüntülenmez. Kullanım -1 tüm başlıkları ile iletiler döndürülür belirtmek için hatta bilgilendirme iletileri. Eğer istimal -1, parametre ayarı arasında hiçbir boşluk olmalıdır (-m-1, -m -1).

  • -r { 0| 1}
    Mesaj çıktı ekrana yönlendirir (stderr). Parametre belirtmezseniz veya belirtirseniz 0, yalnızca hata iletilerini 11 veya daha yüksek önem düzeyi yönlendirildi. If you specify 1, Bütün ("Yazdır" dahil) mesajı çıktı yönlendirildi.

  • -iinput_file
    Saklı yordamlar veya toplu sql deyimleri içeren dosyayı tanımlar. Az (<) karşılaştırma işleci yerine kullanılabilecek -i.

  • -ooutput_file
    Çıktısı alır dosyayı tanımlayan osql. Büyüktür (>) karşılaştırma işleci yerine kullanılabilecek -o.

    Eğer input_fileUnicode olmayan ve -ubelirtilmemiş, output_fileoem biçiminde saklanmış. Eğer input_fileUnicode veya -ubelirtilen output_fileUnicode biçiminde saklanmış.

  • -p
    Performans istatistiklerini yazdırır.

  • -b
    Belirleyen osqlçı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 olduğunda ise SQL Serverhata iletisi 11 veya daha yüksek; bir önem sahip Aksi takdirde, döndürülen değer 0'dır. Microsoftms-dos toplu iş dosyaları, dos errorlevel değerini test ve hata uygun şekilde ele.

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

  • -R
    Belirleyen SQL Serverodbc sürücüsü, para birimi, Tarih ve Saat veri karakter verileri dönüştürürken istemci ayarları kullanın.

  • -O
    Belirtir belirli osqlÖzellikler önceki sürümlerindeki davranışı eşleştirmek için devre dışı isql. Bu özellikleri devre dışı bırakılır:

    • eof toplu işleme

    • Otomatik konsol genişlik ölçekleme

    • Geniş iletileri

    Ayrıca varsayılan dos errorlevel değeri -1 olarak ayarlar.

[!NOT]

-n, -OVe -Dseçenekleri artık tarafından desteklenen osql.

Açıklamalar

osqlYardımcı programını işletim sisteminden burada listelenen duyarlı seçeneklerin başladı. Sonra osql başlar, sql deyimleri kabul eder ve onlara gönderir SQL Serveretkileşimli. Sonuçları biçimlendirilmiş ve ekranda görüntülenen (stdout). QUIT veya çıkış sayfasından çıkmak için osql.

Ne zaman size bir kullanıcı adı belirtmezseniz osql, SQL Serveriçin ortam değişkenleri denetler ve bu, örneğin, kullandığı osqluser = (user) ya osqlserver = (server). Hiçbir ortam değişkenleri ayarlanır, iş istasyonu kullanıcı adı kullanılır. Sunucu belirtmezseniz, iş istasyonunun adı kullanılır.

Eğer ne -Uveya -PSeçenekler kullanılır, SQL Serverkullanarak bağlanma girişimi MicrosoftWindows kimlik doğrulaması modu. Kimlik doğrulama dayalı MicrosoftWindows çalıştıran kullanıcı hesabı osql.

osqlYardımcı programını kullanan odbc API. Programı kullanan SQL Serveriçin odbc sürücüsü varsayılan ayarları SQL ServerISO bağlantı seçenekleri. Daha fazla bilgi için bkz: ANSI seçenekleri etkiler.

[!NOT]

osqlYarar clr kullanıcı tanımlı veri türleri desteklemez. Bu veri türlerini işlemek için you must use sqlcmdyarar. Daha fazla bilgi için, bkz. Sqlcmd yardımcı programı.

osql komutlar

Ek olarak Transact-SQLdeyimleri içinde osql, bu komutlar da kullanılabilir.

Komutu

Açıklama

GİT

Son Git sonra girilen tüm deyimleri yürütür.

RESET

Girdiğiniz herhangi deyimleri temizler.

QUIT veya çıkış)

Gelen çıkar osql.

CTRL+C

Dan çıkmadan bir sorgu sona osql.

[!NOT]

!! ve ed komutların artık tarafından desteklenen osql.

(Varsayılan olarak) komutu sonlandırıcılar go Sıfırla çıkış, çıkış ve ctrl + c, tanınır yalnızca bir satır başında görünüyormuş hemen ardından osqlistemi.

go sinyalleri her iki sonunda toplu ve önbelleğe alınmış herhangi bir yürütme Transact-SQLdeyimleri. Her sonunda enter tuşuna bastığınızda giriş hattı, osqldeyimleri bu hat üzerinde önbelleğe. go yazdıktan sonra enter tuşuna bastığınızda, tüm şu anda önbelleğe alınan ifadeler için toplu olarak gönderilen SQL Server.

Mevcut osqlprogramı çalışır sanki bir zımni yürütülen herhangi bir komut dosyasının sonuna gidin, bu nedenle tüm deyimleri Komut dosyasını yürütün.

Komut satır başlangıcı ile bir komut Sonlandırıcı yazarak bitirin. Komutun çalışması gereken kaç kez belirtmek için bir tamsayı ile komut Sonlandırıcı takip edebilirsiniz. Örneğin, 100 kere bu komutunu yürütmek için şunları yazın:

SELECT x = 1
GO 100

SELECT x = 1
GO 100

Sonuçlar, yürütme sonunda bir kez yazdırılır. osqlsatır başına 1.000'den fazla karakter kabul etmez. Büyük tablolar birden çok hattında yaymak.

Windows komutu geri çağırmak tesislerin hatırlama ve değiştirmek için kullanılabilir osqldeyimleri. Varolan sorgu arabellek sıfırlama yazarak temizlenebilir.

Saklı yordamlar, çalışırken osqltoplu sonuçları her kümesinin arasına boş bir satır yazdırılır. Ayrıca, "etkilenen satırların 0" yürütülen deyimi uygulanamaz iletisi görünmez.

Osql etkileşimli kullanma

Kullanmak için osqletkileşimli, yazın osqlkomutu (ve seçenekleri) komut isteminde.

Sen-ebilmek okumak-e tarafından yürütülmesi için bir sorgu (örneğin, Stores.qry) içeren bir dosya içinde osqlbuna benzer bir komut yazarak:

osql -E -i stores.qry

osql -E -i stores.qry

Bir sorgu (örneğin, Titles.qry) içeren bir dosyayı okumak ve sonuçları başka bir dosyaya benzer bir komut yazarak doğrudan:

osql -E -i titles.qry -o titles.res

osql -E -i titles.qry -o titles.res
Güvenlik notuGüvenlik Notu

Mümkün olduğunda kullanın -E seçeneği (güvenilir bağlantı).

Kullanırken osqletkileşimli, sen-ebilmek okumak bir arabellek ile işletim sistemi dosyasına : rfile_name. Bu sql komut dosyası gönderir file_namedoğrudan sunucuya tek bir toplu iş olarak.

[!NOT]

Kullanırken osql, SQL Serverbir sql komut dosyasında sözdizimi hatası olarak görünüyorsa, git, toplu iş ayırıcı değerlendirir.

Yorum ekleme

Gönderilen Transact-sql deyimi içinde açıklamalar ekleyebilirsiniz SQL Servertarafından osql. Yorum stiller için iki tür izin:--ve / *... * /.

ÇIKIŞ sonuçları döndürmek için osql içinde kullanma

Sen-ebilmek kullanma bir select deyiminin sonuç olarak gelen bir dönüş değeri osql. Sayısal ise son sonuç satırı son sütununun (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, tüm 4 baytlık tamsayı geçirir. Sözdizimi şöyledir:

EXIT ( < query > )

EXIT ( < query > )

Örneğin:

EXIT(SELECT @@ROWCOUNT)

EXIT(SELECT @@ROWCOUNT)

Bir toplu iş dosyasının bir parçası olarak çıkış parametresi de ekleyebilirsiniz. Örneğin:

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

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

osqlYeni parantezler arasındaki her şey geçer () sunucuya tam olarak girdi.  Sistem saklı yordam kümesi seçer ve bu değeri verir, sadece seçimi döndürülür. Çıkış**()** ayraçlar arasında hiçbir şey ifade her şeyi toplu işleme önceki yürütür ve sonra çıkar ile dönüş değeri yok. 

Dört çıkış biçimi vardır:

  • ÇIKIŞ

[!NOT]

Toplu iş yürütme değil; hemen kapanır ve hiçbir değeri döndürür.

  • EXIT**(** )

[!NOT]

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

  • EXIT**(query)**

[!NOT]

Query ile birlikte toplu yürütür ve sorgu sonuçlarını döndükten sonra çıkar.

  • RAISERROR ile 127 durumu

[!NOT]

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

RAISERROR(50001, 10, 127)

RAISERROR(50001, 10, 127)

Bu hata neden olur osqlkomut dosyasının sonuna ve ileti Kımlığı 50001 istemciye döndürülür.

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

  • -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.

Para ve smallmoney veri türleri görüntüleme

osqlgörüntüler moneyve smallmoneyrağmen iki ondalık veri türleri SQL Serverdahili dört ondalık basamak değeri saklar. Örneği ele alalım:

SELECT CAST(CAST(10.3496 AS money) AS decimal(6, 4))
GO

SELECT CAST(CAST(10.3496 AS money) AS decimal(6, 4))
GO

Bu sonucu üreten 10.3496, hangi gösterir değeri tüm ondalık basamakla bozulmadan saklanır.

Ayrıca bkz.

Başvuru

/*...*/ (Comment) (MDX)

-- (Comment) (MDX)

CAST ve CONVERT (Transact-SQL)

RAISERROR (Transact-SQL)