osql Utility

The osql utility allows you to enter Transact-SQL statements, system procedures, and script files.Narzędzie to wykorzystuje ODBC do komunikowania się z serwerem.

Important noteImportant Note:

Ta funkcja zostanie usunięta w przyszłej wersja programu SQL Server. Należy unikać stosowania tej funkcji w nowej pracy rozwoju i zaplanować do modyfikowania aplikacji korzystających aktualnie z funkcji.Użycie SQLCMD zamiast niego.Aby uzyskać więcej informacji zobaczsqlcmd Utility.

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]
]

Argumenty

  • -?
    Wyświetla podsumowanie składni Osql przełączników.

  • -L
    Wyświetla listę lokalnie skonfigurowanych serwerów i nazwy serwerów, emisja w sieci.

    Uwaga

    Ze względu na charakter emisji w sieci, Osql mogą nie odbierać czas odpowiedzi od wszystkich serwerów.W związku z tym lista serwerów zwracane może być inna dla każdego wywołania tej opcji.

  • -Ulogin_id
    To identyfikator logowania użytkownika.Identyfikatory logowania jest uwzględniana wielkość liter.

  • -Ppassword
    To hasło określone przez użytkownika.Jeśli -P nieużywane opcji Osql monituje o podanie hasła.Jeśli -P opcja jest używana na końcu wiersz polecenia bez żadnych hasła, Osql używa domyślnego hasła (NULL).

    Security noteSecurity Note:

    Nie należy używać pustego hasła.Należy używać silnego hasła.Aby uzyskać więcej informacji zobaczStrong Passwords.

    W hasłach jest rozróżniana wielkość liter.

    Zmienna środowiskowa OSQLPASSWORD umożliwia ustawienie domyślnego hasła dla bieżącej sesja.Dlatego nie trzeba hasła dysku twardego do kodu w plikach wsadowych.

    Jeśli nie określisz hasła za -P option, Osql sprawdza najpierw dla zmiennej OSQLPASSWORD.Jeśli wartość nie jest zestaw, Osql używa domyślnego hasła, wartości NULL.Poniższy przykład ustawia zmienną OSQLPASSWORD w wiersz polecenia, a następnie uzyskuje dostęp do Osql utility:

    C:\>SET OSQLPASSWORD=abracadabra
    C:\>osql 
    
    Security noteSecurity Note:

    W celu zamaskowania hasła, nie zostanie określony -P Opcja -U opcji.Zamiast tego po określeniu Osql-U opcji i inne przełączniki (nie zostanie określony -P), naciśnij klawisz ENTER, a Osql zostanie wyświetlony monit o hasło.Metoda taka daje pewność, że hasła, będą ukryte, gdy jest on wprowadzany.

  • -E
    Korzysta z zaufane połączenie zamiast żąda hasła.

  • -Sserver_name[ **\instance_name]
    Określa wystąpienie SQL Server Aby połączyć się. Określ server_name Aby połączyć się z domyślnym wystąpienie SQL Server na tym serwerze. Określ server_name
    \**instance_name do łączenia się z nazwanego wystąpienie programu SQL Server na tym serwerze. Jeśli serwer nie zostanie określona, Osql łączy się z domyślnym wystąpienie SQL Server na komputerze lokalnym. Ta opcja jest wymagana podczas wykonywania Osql z komputera zdalnego w sieci.

  • -Hwksta_name
    Jest to nazwa stacja robocza.Nazwa stacja robocza jest przechowywana w sysprocesses.hostname i jest wyświetlany przez sp_who.Jeżeli ta opcja nie zostanie określony, przyjmowana jest bieżącej nazwy.

  • -ddb_name
    Issues a USE db_name statement when osqlis started.

  • -ltime_out
    Określa liczbę sekund przed Osql Upłynął limit czasu logowania. Domyślny limit czas podczas logowania do Osql jest osiem sekund.

  • -ttime_out
    Określa limit czasu liczba sekund przed poleceniem.Jeśli time_out nie określono wartości, polecenia działają nie limitu czas.

  • -hheaders
    Określa liczbę wierszy, które mają zostać wydrukowane między nagłówkami kolumn.Wartością domyślną jest wydrukować nagłówki jeden raz dla każdego zestaw wyniki kwerendy.Aby określić, że nagłówki nie będą drukowane, należy użyć wartości -1.Jeśli używany jest –1, musi być bez spacji między parametrem a (ustawienie-h - 1, not -h -1).

  • -scol_separator
    Określa znak separatora kolumna, która jest domyślnie puste miejsce.To use characters that have special meaning to the operating system (for example, | ; & < >), enclose the character in double quotation marks (").

  • -wcolumn_width
    Pozwala użytkownikowi ustawić szerokość ekranu danych wyjściowych.Wartością domyślną jest 80 znaków.Po osiągnięciu jej szerokość ekranu maksymalna do linii danych wyjściowych jest dzielony na wiele wierszy.

  • -apacket_size
    Można zażądać pakiet o różnych rozmiarach.Prawidłowe wartości parametru packet_size to 512 do 65535. Wartość domyślna Osql jest domyślnym serwerem.Increased packet size can enhance performance on larger script execution where the amount of SQL statements between GO commands is substantial.Microsoft testing indicates that 8192 is typically the fastest setting for bulk copy operations.Większy rozmiar pakiet może być wymagane, ale Osql domyślnie domyślnej serwera, jeśli żądanie nie może być przyznane.

  • -e
    Dane wejściowe echa.

  • -I
    Ustawia QUOTED_IDENTIFIER opcji połączenia.

  • -Ddata_source_name
    Łączy ze źródłem danych ODBC, które zdefiniowano przy użyciu sterownika ODBC dla SQL Server. The osql connection uses the options specified in the data urządzenie źródłowe.

    Uwaga

    Ta opcja nie działa ze źródłami danych określonych w przypadku innych sterowników.

  • -ccmd_end
    Określa polecenie terminator.Domyślnie polecenia są zakończone i wysyłane do SQL Server Wprowadzając GO w wierszu samodzielnie. Po zresetowaniu terminator polecenia nie należy używać Transact-SQL zarezerwowane wyrazy lub znaki mają specjalne znaczenie w systemie operacyjnym, czy poprzedzone znaku odwrotnej kreski ukośnej, czy nie.

  • -q "query"
    Wykonuje kwerendę po Osql zostanie uruchomiony, ale nie jest zamykany Osql po zakończeniu kwerendy.(Należy zauważyć, że instrukcja kwerendy nie powinna zawierać GO).Jeżeli zostanie wydane kwerendy z pliku wsadowego, za pomocą % zmienne lub zmienne % środowiska.Na przykład:

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

    Użycie znaki cudzysłowu wokół kwerendy i wszystko, co w znaki pojedynczego cudzysłowu osadzony w kwerendzie.

  • -Q"query"
    Wykonuje kwerendę i natychmiast kończy pracę. Osql.Użycie znaki cudzysłowu wokół kwerendy i wszystko, co w znaki pojedynczego cudzysłowu osadzony w kwerendzie.

  • -n
    Usuwa numerowanie i oknem symboli)>) z wierszy danych wejściowych.

  • -merror_level
    Dostosowuje wyświetlanie komunikatów o błędach.numer komunikatu, stan i poziom błędu wyświetlanych dla błędów ważności określonego poziomu lub nowszej.Nic nie jest wyświetlany w przypadku błędów poziomy poniżej określonego poziom.Użycie wartość -1 , aby określić, że zwracane są wszystkie nagłówki wiadomości, nawet komunikaty informacyjne.Jeśli przy użyciu wartość -1, musi być bez spacji między parametrem i ustawienia (-m - 1, not -m -1).

  • -r { 0| 1}
    Przekierowuje dane wyjściowe wiadomości do (ekranobiektu stderr).Jeśli nie określono parametru lub jeśli określony 0, tylko komunikaty o poziomie ważności 11 lub wyższe są przekierowywane.Jeśli określisz 1, wszystkie dane wyjściowe wiadomości (łącznie "Drukuj") jest przekierowana.

  • -iinput_file
    Określa plik, który zawiera partia instrukcji SQL lub procedur przechowywanych.Większe niż)<) operator porównania można używać zamiast -i.

  • -ooutput_file
    Określa plik, który odbiera dane wyjściowe Osql.Im większa niż)>) operator porównania można używać zamiast -o.

    Jeśli input_file nie jest kodowana w standardzie Unicode i -u nie określono output_file są przechowywane w formacie OEM. Jeśli input_file jest kodowana w standardzie Unicode lub -u jest określony, output_file są przechowywane w formacie Unicode.

  • -p
    Wyświetla statystyki wydajności.

  • -b
    Określa, że Osql kończy działanie i zwraca wartość DOS ERRORLEVEL, gdy wystąpi błąd.Wartość zwracana do zmiennej DOS ERRORLEVEL jest 1, gdy SQL Server komunikat o błędzie zawiera ważności 11 lub większym; w przeciwnym wypadku zwrócona wartość jest równa 0. Microsoft Pliki partia systemu MS-DOS można testować wartość DOS ERRORLEVEL i odpowiednio obsługi błędu.

  • -u
    Określa, że output_file jest przechowywany w formacie Unicode, niezależnie od formatu input_file.

  • -R
    Określa, że SQL Server Sterownik ODBC za pomocą ustawień klient podczas konwersji waluty, data i czas danych danych znakowych.

  • -O
    Określa, że niektóre Osql funkcje być dezaktywowany, aby dopasować zachowanie we wcześniejszych wersjach isql.Te funkcje zostaną wyłączone:

    • Przetwarzanie partia EOF

    • Skalowanie automatyczne konsoli szerokość

    • Szeroki wiadomości

    Ustawia też domyślną wartość DOS ERRORLEVEL-1.

Uwaga

The -n, -O and -D options are no longer supported by osql.

Remarks

The osql utility is started directly from the operating system with the przypadek-sensitive options listed here.After osqlstarts, it accepts SQL statements and sends them to SQL Server interactively.Wyniki są sformatowane i wyświetlane na ekranie (STDOUT).Za pomocą QUIT lub zakończenie, aby wyjść z Osql.

Jeśli nie określono nazwy użytkownika podczas uruchamiania Osql, SQL Server sprawdza, czy zmienne środowiskowe i wykorzystuje te, na przykład osqluser = ()user) or osqlserver = ()server).Jeśli nie zmienne środowiskowe są ustawione, jest używana nazwa stacja robocza.Jeśli serwer nie zostanie określona, używana jest nazwa stacja robocza.

Jeśli żadna -U or -P opcje są używane, SQL Server próbuje połączyć się przy użyciu Microsoft Tryb uwierzytelnianie systemu Windows. Uwierzytelnianie jest oparte na Microsoft Konto użytkownika, uruchamianie Osql.

The osql utility uses the ODBC API.Narzędzie to wykorzystuje SQL Server Ustawienia domyślne sterownika ODBC dla SQL Server Opcje połączenia ISO. Aby uzyskać więcej informacji zobacz Opcje efekty ANSI.

Uwaga

The osql utility does not support CLR user-defined data types.Aby przetwarzać te typy danych, należy użyć SQLCMD narzędzie.Aby uzyskać więcej informacji zobaczsqlcmd Utility.

Polecenia OSQL

Oprócz Transact-SQL instrukcje Osql, polecenia te są również dostępne.

Polecenie

Description

PRZEJDŹ DO

Wykonuje wszystkie instrukcje wprowadzone po ostatnim GO.

RESETOWANIE

Czyści wszystkie instrukcje zostały wprowadzone.

QUIT lub EXIT)

Wyjść z Osql.

Następująca procedura powinna być użyte tylko raz.

Kończy się kwerendy bez zamykania okna z Osql.

Uwaga

The !!and ED commands are no longer supported by osql.

Polecenie terminatory GO (domyślnie), RESET EXIT, QUIT i kombinację klawiszy CTRL + C, są rozpoznawane tylko wtedy, gdy pojawią się one na początku wiersza, bezpośrednio po Osql wiersza.

OBLICZ sygnalizuje zakończenie partia oraz wykonywanie wszelkich w pamięci podręcznej Transact-SQL instrukcje. Naciśnij klawisz ENTER na końcu każdego wiersza wejściowego Osql buforuje instrukcji w tym wierszu.Po naciśnięciu klawisza ENTER po wpisaniu GO, wszystkie instrukcje aktualnie w pamięci podręcznej są wysyłane jako zadanie partia do SQL Server.

Bieżący Osql narzędzie działa jak gdyby dorozumianych GO na końcu dowolny skrypt wykonywany, dlatego wykonać wszystkich instrukcji w skrypcie.

Zakończenie polecenia, wpisując wiersz rozpoczynający się od terminator polecenia.Terminator polecenia można wykonać z liczbą całkowitą, aby określić, ile razy polecenie powinno być wykonywane.Na przykład aby wykonać to polecenie 100 razy, należy wpisać:

SELECT x = 1
GO 100

The results are printed once at the end of execution.osql does not accept more than 1,000 characters per line.Instrukcje duże powinny zostać rozłożony w wielu liniach.

Urządzenia odwołania polecenia systemu Windows może służyć do odwołania i modyfikowanie Osql instrukcji.Istniejące buforu kwerendy może zostać wyczyszczone, wpisując RESET.

Po uruchomieniu procedur przechowywanych Osql drukuje pusty wiersz między każdy zestaw wyniki w serii.Ponadto wiadomość "wpływa na wiersze 0" nie jest wyświetlana, gdy nie ma zastosowania do wykonania instrukcja.

Za pomocą osql interaktywne

Aby użyć Osql interaktywnie, wpisz Osql polecenia (i opcji) na polecenia monitu.

Można znaleźć w pliku zawierającego kwerendę (na przykład Stores.qry) do wykonania przez Osql , wpisując polecenie podobnie do następującego:

osql -E -i stores.qry

Można czytać w pliku zawierającego kwerendę (na przykład titles.qry) i skierować wyniki do innego pliku przez wpisanie polecenia podobnie do następującego:

osql -E -i titles.qry -o titles.res
Security noteSecurity Note:

When possible, use the -Eoption (trusted connection).

When using osql interactively, you can read an operating-system file into the command buffer with :rfile_name.Tym wysyła skrypt języka SQL file_name bezpośrednio do serwera w jednej partia.

Uwaga

Podczas korzystania z Osql, SQL Server traktuje separator partia GO, jeśli pojawi się on w pliku skryptu SQL jako błąd składni.

Wstawianie komentarzy

Komentarze można umieścić w instrukcja języka Transact-SQL, do SQL Server przez Osql.Dopuszczalne są dwa rodzaje stylów komentowania: -- and /*...*/.

Aby uzyskać więcej informacji zobaczUsing Comments.

Za pomocą EXIT do wyniki zwracanych w osql

Wynik instrukcja SELECT może być użyty jako wartość zwracana z Osql.Pierwsza kolumna pierwszy wiersz wyników jest konwertowany na 4-bajtowe liczby (długa) całkowitej.MS-DOS przekazuje niskie bajtów do procesu nadrzędnego lub poziom błędu systemu operacyjnego.System Windows przekazuje całą całkowitą 4-bajtowego.Składnia jest następująca:

EXIT ( < query > )

Na przykład:

EXIT(SELECT @@ROWCOUNT)

Można również użyć parametrów EXIT jako część partia pliku.Na przykład:

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

The osql utility passes everything between the parentheses ( ) to the server exactly as entered.Jeśli procedura przechowywana system wybierze zestaw i zwraca wartość, zwracany jest tylko zaznaczenie.The EXIT**(** ) statement with nothing between the parentheses executes everything preceding it in the batch and then exits with no return value.

Dostępne są cztery formaty EXIT:

  • ZAKOŃCZ

Uwaga

Nie wykonuje partia; natychmiast kończy działanie i zwraca wartość nie.

  • EXIT**(** )

Uwaga

Wykonuje partia, a następnie kończy działanie i zwraca wartość nie.

  • ZAKOŃCZ**(query)**

Uwaga

Wykonuje partia, łącznie z kwerendy, a następnie jest zamykany po powrocie wyniki kwerendy.

  • RAISERROR z stanem 127

Uwaga

Jeśli RAISERROR jest używany w Osql skryptu i stan, w którym 127 jest wywoływane, Osql będzie Zamknij i wróć identyfikator wiadomości do klient.Na przykład:

RAISERROR(50001, 10, 127)

Ten błąd może spowodować, że Osql skryptu do zakończenia i identyfikator wiadomości 50001 zostaną zwrócone do klient.

Zwracane wartości -1 do-99 są zarezerwowane przez SQL Server; Osql definiuje te wartości:

  • -100

    Błąd wystąpił przed do wybierania wartości zwracanej.

  • -101

    Nie znaleziono, wybierając wartość zwracana wierszy.

  • -102

    Wystąpił błąd konwersji po wybraniu wartości zwracanej.

Wyświetlanie pieniądze i smallmoney typy danych

Osql Wyświetla money i smallmoney typy danych z dwoma miejscami po przecinku, mimo że SQL Server przechowuje wartość wewnętrznie z czterema miejscami po przecinku. Rozważmy przykład:

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

Ta instrukcja generuje wynik 10.3496, która wskazuje, że wartość jest przechowywany wszystkich miejsc dziesiętnych bez zmian.