Narzędzia osql

Osql narzędzie umożliwia wprowadzanie Transact-SQL instrukcje, procedury systemu i plików skryptów.Narzędzie to wykorzystuje ODBC do komunikowania się z serwerem.

Ważna informacjaWażne:

Ta funkcja zostanie usunięta w przyszłej wersja SQL Server.Plan do modyfikowania aplikacji, które aktualnie funkcji i uniknąć używania tej funkcji w nowych prac rozwojowych.Użyj polecenie sqlcmd zamiast.Aby uzyskać więcej informacji, zobacz Narzędzie sqlcmd.

Składnia

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 emisji w sieci.

    Ostrzeżenie

    Ze względu na charakter emisji w sieci osql mogą nie odbierać czasie odpowiedzi od wszystkich serwerów.Dlatego listy serwery zwracane mogą się różnić dla każdego wywołania tej opcji.

  • -Ulogin_id
    Jest identyfikator logowania użytkownika.Identyfikatory logowania są przypadek-poufne.

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

    Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

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

    Hasła są przypadek-poufne.

    Zmienna środowiskowa OSQLPASSWORD pozwala na zestaw domyślne hasło dla bieżącej sesja.Dlatego nie ma dysku twardego kodu hasło do partia pliki.

    Jeśli nie określisz hasła z -P opcji osql najpierw sprawdza, czy zmienna OSQLPASSWORD.Jeśli wartość nie jest zestaw, osql używa domyślnego hasła NULL.Poniższy przykład ustawia zmienną OSQLPASSWORD w wiersz polecenia, a następnie uzyskuje dostęp do osql narzędzia:

    C:\>SET OSQLPASSWORD=abracadabra
    C:\>osql 
    
    Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

    Do zamaskowania hasła, nie należy określać -P opcji wraz z - U opcji.Zamiast tego po określeniu osql wraz z - U opcji i inne przełączniki (nie określono -P), naciśnij klawisz ENTER, a osql wyświetli monit o hasło.Metoda taka daje pewność, że hasło będzie maskowany, gdy jest ona wprowadzana.

  • -E
    Zaufane połączenie używa zamiast żądać nowego hasła.

  • -Sserver_name[ **\instance_name]
    Określa wystąpienie SQL Server się połączyć.Określ server_name do łączenia się z wystąpienie domyślne SQL Server na tym serwerze.Określ server_name
    \**instance_name się z wystąpienie nazwane z SQL Server na tym serwerze.Jeśli serwer nie jest określony, osql łączy się z wystąpienie domyślne 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 wyświetlane przez sp_who.Jeśli ta opcja nie jest określony, przyjmowana jest bieżąca nazwa komputera.

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

  • -ltime_out
    Określa liczbę sekund przed osql limit czasu logowania.Domyślnie czas-out podczas logowania do osql jest osiem sekund.

  • -ttime_out
    Określa limit czasu liczba sekund przed poleceniem.Jeśli time_out wartość nie zostanie określona, polecenia nie czas out.

  • -hheaders
    Określa liczbę wierszy, aby wydrukować między kolumna nagłówki.Wartością domyślną jest wydrukować nagłówki jeden czas dla każdego zestaw wyniki kwerendy.Użyj -1, aby określić nagłówki nie zostaną wydrukowane.Jeśli używany jest –1, musi być bez spacji między parametrem i ustawienie (-h-1, nie -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
    Zezwala użytkownikowi na zestaw szerokość ekranu danych wyjściowych.Wartością domyślną jest 80 znaków.Po przekroczeniu jego szerokość maksymalna ekranu wiersza danych wyjściowych jest podzielone na wiele wierszy.

  • -apacket_size
    Umożliwia zażądanie pakiet o różnych rozmiarach.Prawidłowe wartooci dla packet_size są 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.Może zażądać większego rozmiaru pakiet, ale osql domyślne domyślnej serwera, jeśli żądanie nie można udzielić.

  • -e
    Wejściowe echa.

  • -
    Ustawia opcję połączenia QUOTED_IDENTIFIER.

  • -Ddata_source_name
    Łączy danych ODBC źródło zdefiniowanego za pomocą sterownika ODBC dla SQL Server.Osql połączenie używa opcji określonych w danych źródło.

    Ostrzeżenie

    Ta opcja nie działa z zdefiniowanych dla innych sterowników źródeł danych.

  • -ccmd_end
    Określa polecenie terminator.Domyślnie polecenia są zakończone i wysyłane do SQL Server wprowadzając Przejdź w wierszu samodzielnie.Po zresetowaniu terminator polecenia nie należy używać Transact-SQL zarezerwowane wyrazy lub znaki, które mają specjalne znaczenie do systemu operacyjnego, czy poprzedzone odwróconą lub nie.

  • -q "query"
    Wykonuje kwerendę po osql uruchamia się, ale nie osql po wykonaniu kwerendy.(Należy zauważyć, że kwerendy instrukcja nie powinny obejmować Przejdź).Jeżeli kwerendę z partia plików, użyj % zmienne lub zmienne % środowiska.Na przykład:

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

    Użyj podwójnego cudzysłowu kwerendy i pojedynczy cudzysłów niczego osadzony w kwerendzie.

  • -Q"query"
    Wykonuje kwerendę i natychmiast zamyka osql.Użyj podwójnego cudzysłowu kwerendy i pojedynczy cudzysłów niczego osadzony w kwerendzie.

  • -n
    Usuwa numerowanie i prompt symbol (>) z wprowadzania wierszy.

  • -merror_level
    Dostosowuje wyświetlanie komunikatów o błędach.numer komunikatu, stanu i poziom błędu są wyświetlane błędy ważności określonym poziomie lub wyższym.Nic nie jest wyświetlane błędy poziomy niższe od określonego poziom.Użyj -1 , aby określić, że zwracane są wszystkie nagłówki wiadomości, nawet komunikaty informacyjne.Jeśli za pomocą -1, musi być bez spacji między parametrem i ustawienie (-m-1, nie -m -1).

  • -r { 0| 1}
    Przekierowuje wiadomość do ekranu (stderr).Jeżeli nie określono parametru lub Jeśli określisz 0, tylko komunikaty o błędzie ważności poziom 11 lub wyższe są przekierowywane.Jeśli określisz 1, wszystkie wiadomości wyjściowych (w tym "Drukowanie").

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

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

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

  • -p
    Wyświetla statystyki wydajności.

  • -b
    Określa, że osql zamyka i zwraca wartość DOS ERRORLEVEL, gdy wystąpi błąd.Wartość zmiennej DOS ERRORLEVEL zwracane jest 1, gdy SQL Server komunikat o błędzie zawiera ważności 11 lub większy; w przeciwnym wypadku zwrócona wartość jest równa 0.MicrosoftPliki 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 ustawień sterownika ODBC użycia klient podczas konwersji waluty, data, a czas danych do danych znak.

  • -O
    Określa, że niektóre osql dezaktywowane do zachowania starszych wersji funkcji isql.Funkcje te są deaktywowane:

    • EOFprzetwarzanie partia

    • Skalowanie szerokość automatyczne konsoli

    • Szeroki wiadomości

    Ustawia również domyślną wartość DOS ERRORLEVEL-1.

Ostrzeżenie

- N, - O i -D opcje nie są już obsługiwane przez osql.

Uwagi

Osql narzędzie jest uruchamiany bezpośrednio z systemu operacyjnego z przypadek-wrażliwych opcje wymienione poniżej.After osqlstarts, it accepts SQL statements and sends them to SQL Server interactively.Wyniki są formatowane i wyświetlane na ekranie (stdout).Użyj Zamknij lub Zakończ, aby zamknąć z osql.

Jeśli nie określisz nazwę użytkownika po uruchomieniu osql, SQL Server sprawdza zmienne środowiskowe i używa tych, na przykład osqluser = (user) lub osqlserver = (server).Jeśli nie zmienne środowiskowe są zestaw, używana jest nazwa stacja robocza użytkownika.Jeśli serwer nie jest określony, jest używana nazwa stacja robocza.

Jeśli żadna - U lub -P służą opcje SQL Server próbuje połączyć się przy użyciu Microsoft tryb uwierzytelniania systemu Windows.Uwierzytelnianie jest oparte na Microsoft konto systemu Windows użytkownik uruchamiający osql.

Osql narzędzie używa interfejsu API ODBC.Narzędzie to SQL Server ustawień domyślnych sterownika ODBC dla SQL Server ISO opcje połączenia.Aby uzyskać więcej informacji zobacz Opcje efekty ANSI.

Ostrzeżenie

Osql narzędzie nie obsługuje typy danych zdefiniowane przez użytkownika CLR.Aby przetwarzać te typy danych, należy użyć polecenie sqlcmd narzędzia.Aby uzyskać więcej informacji, zobacz Narzędzie sqlcmd.

Polecenia OSQL

Oprócz Transact-SQL instrukcje osql, polecenia te są także dostępne.

Polecenia

Opis

PRZEJDŹ

Wykonuje wszystkie instrukcje wprowadzone po ostatniej podróży.

RESETUJ

Czyści wszelkie oświadczenia zostały wprowadzone.

Zamknij lub Zakończ)

Kończy pracę z osql.

CTRL+C

Kończy kwerendy bez zamykania z osql.

Ostrzeżenie

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

Terminatory polecenia Przejdź (domyślnie), resetowanie wyjścia, zamknij i CTRL + C, są rozpoznawane tylko wtedy, gdy pojawiają się na początku wiersza, niezwłocznie po osql wierszu.

Przejdź sygnalizuje zakończenie partia i wykonanie wszelkich buforowane Transact-SQL instrukcji.Po naciśnięciu przycisku ENTER na końcu każdego wiersza, wprowadzania osql buforuje instrukcji w tym wierszu.Po naciśnięciu klawisza ENTER po wpisaniu Przejdź wszystkie aktualnie buforowany sprawozdania są wysyłane jako partia do SQL Server.

Bieżący osql narzędzie działa jak gdyby domniemanych przejdź na koniec dowolny skrypt wykonywany, dlatego wykonać wszystkich instrukcji w skrypcie.

Zakończenie polecenia, wpisując wiersz rozpoczynający się od polecenia terminator.Terminator polecenia można wykonać z liczbą całkowitą, aby określić, ile razy należy uruchomić polecenie.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.Duże sprawozdania powinny rozprzestrzeniać się w wielu liniach.

Pomieszczenia odwołania polecenia systemu Windows można odwołać i zmodyfikować osql instrukcji.Bufor istniejącej kwerendy można wyczyszczone wpisując RESETOWANIA.

Podczas uruchamiania procedury przechowywanej, osql drukuje pusty wiersz między każdego zestaw wyniki w partia.Ponadto "0 wierszy dotyczy" pojawia się komunikat, nie stosuje się do instrukcja wykonywane.

Używanie interakcyjne osql

Aby użyć osql interaktywnie, wpisz osql polecenia (i dowolne opcje) w wiersz polecenia.

Odczytanie pliku zawierające kwerendy (np. Stores.qry) do wykonania przez osql , wpisując polecenie podobne do tego:

osql -E -i stores.qry

Można czytać w pliku kwerendy (np. Titles.qry) i skierować wyniki do innego pliku, wpisując polecenie podobne do tego:

osql -E -i titles.qry -o titles.res
Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

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.To wysyła skryptu SQL w file_name bezpośrednio do serwera jako pojedynczej partia.

Ostrzeżenie

Podczas korzystania z osql, SQL Server traktuje separator partia Przejdź, występuje w pliku skryptu SQL jako błąd składni.

Wstawianie komentarzy

Użytkownik może dodawać komentarze w Transact-SQL sprawozdania przedłożone SQL Server przez osql.Dopuszczalne są dwa rodzaje komentarzy style: -- and /*...*/.

Aby uzyskać więcej informacji, zobacz Za pomocą komentarzy.

Za pomocą Zakończ, aby zwrócić wyniki w osql

Wynik instrukcja SELECT można używać jako wartość zwracana z osql.Jeśli numeryczne, ostatniej kolumna w ostatnim wierszu wynik jest konwertowany na 4-bajtowa liczba całkowita (długa).MS-DOS przekazuje bajcie do procesu nadrzędnego lub poziom błędu systemu operacyjnego.System Windows przekazuje cały 4-bajtowa liczba całkowita.Składnia jest następująca:

EXIT ( < query > )

Na przykład:

EXIT(SELECT @@ROWCOUNT)

Można również dołączyć parametr wyjścia 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 wybiera 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.

Istnieją cztery formaty wyjściowe:

  • ZAKOŃCZ

Ostrzeżenie

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

  • EXIT**(** )

Ostrzeżenie

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

  • EXIT**(query)**

Ostrzeżenie

Wykonuje partia, łącznie z kwerendy i następnie zostaje zamknięty po powrocie wyniki kwerendy.

  • RAISERROR z Państwem 127

Ostrzeżenie

Jeśli RAISERROR jest używany w osql uruchamiany jest skrypt i stan 127 osql będzie zamknąć i zwraca 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 50001 identyfikator wiadomości będą zwracane do klient.

Zwracane wartości -1 do-99 są zastrzeżone przez SQL Server; osql definiuje te wartości:

  • -100

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

  • -101

    Nie wierszy po wybraniu wartości zwracanej.

  • -102

    Wystąpił błąd konwersji, wybierając wartość zwracana.

Wyświetlanie typów danych pieniędzy i smallmoney

osql Wyświetla money i smallmoney typy danych z dwoma miejscami dziesiętnymi, chociaż SQL Server przechowuje wartość wewnętrznie z czterech miejsc dziesiętnych.Rozważmy przykład:

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

To instrukcja daje w wyniku 10.3496, która wskazuje, że wartość jest przechowywana wszystkich miejsc dziesiętnych nienaruszone.