sqlcmd Utility

The sqlcmd utility lets you enter Transact-SQL statements, system procedures, and script files at the wiersz polecenia, in Query Editor in SQLCMD mode, in a Windows script file or in an operating system (Cmd.exe) zadanie step of a SQL Server Agent zadanie. Narzędzie to wykorzystuje OLE DB do wykonać Transact-SQL instancje.

Important noteImportant Note:

SQL Server Management Studio uses the Microsoft .NET FrameworkSqlClient for execution in regular and SQLCMD mode in Query Editor.Kiedy SQLCMD jest uruchamiany z wiersza polecenia, SQLCMD używa dostawca OLE DB.Ponieważ może stosować różne domyślne opcje, można zobaczyć różne zachowanie podczas wykonywania tej samej kwerendy w SQL Server Management Studio w trybie SQLCMD i w polu SQLCMD narzędzie.

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]

Opcje wiersza polecenia

  • Opcje dotyczące logowania

  • -Ulogin_id
    To identyfikator logowania użytkownika.

    Uwaga

    Zmienna środowiskowa OSQLUSER jest dostępna w celu zapewnienia zgodności z poprzednimi wersjami.Zmienna środowiskowa SQLCMDUSER ma pierwszeństwo przed OSQLUSER zmiennej środowiskowej.Oznacza to, że SQLCMD and Osql można ze sobą bez zakłóceń.Oznacza to również, czy istniejące Osql skrypty będą nadal działać.

    Jeśli żadna -U opcji ani -P opcja zostanie określona, SQLCMD próbuje łączyć się przy użyciu Microsoft Tryb uwierzytelnianie systemu Windows. Uwierzytelnianie jest oparte na konto użytkownika, który jest uruchomiony SQLCMD.

    Jeśli -U opcja jest używana z -E opcji (opisane w dalszej części tego tematu), generowany jest komunikat o błędzie.Jeśli –U opcji występuje więcej niż jeden argument, generowany jest komunikat o błędzie i zamyka program.

  • -Ppassword
    To hasło określone przez użytkownika.W hasłach jest rozróżniana wielkość liter.Jeżeli używana jest opcja - U oraz -P opcja nie jest używana i nie została zmiennej środowiskowej SQLCMDPASSWORD zestaw, SQLCMD monituje użytkownika o hasło.Jeśli -P opcja jest używana na końcu wiersz polecenia bez hasło SQLCMD 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.

    Monitu o hasło jest wyświetlane przez drukowanie monitu o hasło do konsoli, w następujący sposób: Password:

    Dane wprowadzone przez użytkownika jest ukryty.Oznacza to, że nic nie jest wyświetlane, a kursor pozostaje w miejscu.

    Zmienna środowiskowa SQLCMDPASSWORD umożliwia ustawienie domyślnego hasła dla bieżącej sesja.Hasła nie jest więc, jest trwale kodowana w plikach wsadowych.

    W następującym przykładzie pierwsze ustawia zmienną SQLCMDPASSWORD w wiersz polecenia, a następnie uzyskuje dostęp do SQLCMD narzędzie.W wiersz polecenia należy wpisać:

    SET SQLCMDPASSWORD= p@a$$w0rd

    Security noteSecurity Note:

    Hasło będzie widoczne dla wszystkich osób widoczny na monitorze komputera.

    W następującym wiersz polecenia należy wpisać:

    sqlcmd

    Jeśli kombinację nazwy i hasła użytkownika jest nieprawidłowa, dostawca OLE DB generuje komunikat o błędzie.

    Uwaga

    Zmienna środowiskowa OSQLPASSWORD było zawsze w celu zapewnienia zgodności z poprzednimi wersjami.Zmienna środowiskowa SQLCMDPASSWORD ma pierwszeństwo przed zmiennej środowiskowej OSQLPASSWORD; oznacza to, że SQLCMD and Osql można użyć sąsiadują ze sobą bez zakłóceń, a stary skrypty będą nadal działać.

    Jeśli -P opcja jest używana z -E opcja, komunikat o błędzie jest generowany.

    Jeśli -P opcji występuje więcej niż jeden argument, generowany jest komunikat o błędzie i zamyka program.

  • -E trusted connection
    Używa zaufane połączenie, a nie przy użyciu nazwy użytkownika i hasła podczas logowania się na serwerze SQL Server. Domyślnie bez -E SQLCMD używa opcji zaufane połączenie.

    The -E option ignores possible user name and password environment variable settings such as SQLCMDPASSWORD.Jeśli -E opcja jest używana wraz z -U lub opcja -P opcja, komunikat o błędzie jest generowany.

  • -z new password
    Zmień hasło:

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

  • -Z new password and exit
    Zmiana hasła i zakończenia:

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

  • -Sserver_name [ **\**instance_name ]
    Określa wystąpienie SQL Server z którym ma być nawiązane połączenie. Ustawia SQLCMD wykonywanie wykonywanie skryptów SQLCMDSERVER zmiennej.

    Określ server_name Aby połączyć się z wystąpienie domyślne z SQL Server na tym komputerze serwera. Specify server_name [ **\**instance_name ] to connect to a named instance of SQL Server on that server computer.Jeśli komputer serwera nie zostanie określona, SQLCMD łączy się z domyślnym wystąpienie SQL Server na komputerze lokalnym. Ta opcja jest wymagana podczas wykonywania SQLCMD z komputera zdalnego w sieci.

    If you do not specify a server_name [ **\**instance_name ] when you start sqlcmd, SQL Server checks for and uses the SQLCMDSERVER environment variable.

    Uwaga

    Zmienna środowiskowa OSQLSERVER było zawsze w celu zapewnienia zgodności z poprzednimi wersjami.Zmienna środowiskowa SQLCMDSERVER ma pierwszeństwo przed zmiennej środowiskowej OSQLSERVER; oznacza to, że SQLCMD and Osql można użyć sąsiadują ze sobą bez zakłóceń, a stary skrypty będą nadal działać.

  • -Hwksta_name
    Jest to nazwa stacja robocza.Ta opcja powoduje SQLCMD wykonywanie wykonywanie skryptów SQLCMDWORKSTATION zmiennej.Nazwa stacja robocza jest wyświetlana w Nazwa hosta kolumnasys.processes katalogu widoku i może zostać obliczona przy użyciu procedura przechowywana sp_who.Jeśli ta opcja nie zostanie określona, domyślnie jest bieżącej nazwy.Nazwa ta może służyć do identyfikowania różnych SQLCMD sesji.

  • -ddb_name
    Problemy z USE db_name Instrukcja podczas uruchamiania SQLCMD.Ta opcja powoduje SQLCMD wykonywanie wykonywanie skryptów SQLCMDDBNAME zmiennej.Określa początkowy bazy danych.Wartość domyślna to właściwość bazy danych domyślną nazwę użytkownika.Jeśli baza danych nie istnieje, zostanie wygenerowany komunikat o błędzie i SQLCMD kończy pracę.

  • -llogintime_out
    Określa liczbę sekund przed SQLCMD Zaloguj się do dostawca OLE DB limit czasu podczas próby nawiązania połączenia z serwerem.Ta opcja powoduje SQLCMD wykonywanie wykonywanie skryptów SQLCMDLOGINTIMEOUT zmiennej.Domyślny limit czas podczas logowania do SQLCMD jest osiem sekund.Limit czas logowania musi być liczbą z przedziału od 0 do 65534.Jeżeli podano wartość nie jest liczbą lub nie spada do tego zakres SQLCMD generuje komunikat o błędzie.Wartość 0 określa limit czas jest nieograniczony.

  • -A dedicated admin connection
    Loguje się do SQL Server z połączeniem dedykowanym administrator (DAC). Ten rodzaj połączenia jest używana do rozwiązywania problemów z serwerem.To działa tylko z komputerów serwerów, które obsługują DAC.Jeśli nie jest dostępny, DAC SQLCMD generuje komunikat o błędzie, a następnie kończy działanie.Aby uzyskać więcej informacji na temat DAC zobacz Using a Dedicated Administrator Connection.

  • Opcje operacji wejścia/wyjścia

  • -i input_file[***,***input_file2...]
    Określa plik, który zawiera partia instrukcji SQL lub procedur przechowywanych.Można określić wiele plików, które będą czytać i przetwarzane w kolejności.Do not use any spaces between file names.sqlcmdwill first check to see whether all the specified files exist.Jeśli jeden lub więcej plików nie istnieją, SQLCMD zakończy działanie.-I i opcji/q - Q wzajemnie się wykluczają.

    Przykłady ścieżka:

    -i Nazwa pliku < C:\ >

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

    -i Folder\ C:\Some"Nazwa pliku < > "

    Ścieżki plików zawierające spacje muszą być ujęte w cudzysłów.

    Opcję tę można stosować więcej niż jeden raz: -i input_file -i I input_file.

  • -ooutput_file
    Określa plik, który odbiera dane wyjściowe SQLCMD.

    Jeśli -u jest określony, output_file są przechowywane w formacie Unicode. 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.Wyjściowy plik jest uszkodzony lub niepoprawny.Zobacz -f przełącznik, aby uzyskać więcej informacji na temat formatów plików.Ten plik zostanie utworzony, jeśli nie istnieje.Plik o tej samej nazwie z przed SQLCMD sesja zostaną zastąpione.Plik określony w tym polu nie jest STDOUT pliku.Jeśli STDOUT plik jest określony, plik ten nie będzie używany.

    Przykłady ścieżka:

    -o Nazwa pliku < C:\ >

    -o \\<Serwer>\<Udział$>\<nazwa_pliku>

    **-o "**C:\Some Folder\<file name>"

    Ścieżki plików zawierające spacje muszą być ujęte w cudzysłów.

  • -f < codepage > | i: < codepage > [ <, o: < codepage > ]
    Określa strony kodowe wejściowych i wyjściowych.Numer strona kodowa jest wartość numeryczną, która określa strona kodowa zainstalowanego systemu Windows.Aby uzyskać więcej informacji zobaczCollation Settings in Setup.

    Reguły konwersji strona kodowej:

    • Jeśli określono ma stron kodowych SQLCMD zastosuje bieżącej strona kodowa dla plików wejściowych i wyjściowych, jeżeli plik wejściowy jest plikiem Unicode, w którym to przypadek nie jest wymagana jakakolwiek konwersja.

    • SQLCMD automatycznie rozpoznaje little-endian i big-endian Unicode plików wejściowych.Jeśli -u opcji został określony, dane wyjściowe będą zawsze little-endian Unicode.

    • Jeśli plik wyjściowy nie zostanie określony, dane wyjściowe strona kodowa będą strona kodowa konsoli.Dzięki temu dane wyjściowe mają być wyświetlane prawidłowo na konsoli.

    • Wiele plików wejściowych są przyjmowane jako o tej samej strona kodowa.Standard Unicode i nie obsługujących kodu Unicode pliki wejściowe mogą być wymieszane.

    Umożliwia wprowadzenie chcp w wiersz polecenia, aby sprawdzić, strona kodowa programu Cmd.exe.

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

  • -r[ 0 | 1] msgs to stderr
    Przekierowuje dane wyjściowe komunikat o błędzie (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 komunikat o błędzie jest przekierowanie danych wyjściowych, włączając w to PRINT.Nie ma znaczenia, jeśli używasz -o.Domyślnie wiadomości są wysyłane do STDOUT.

  • -R use client regional settings
    Zestawy SQL Server Użyj ustawień regionalnych klient konwertuje waluty oraz Data i godzina danych do danych znakowych dostawca OLE DB. Wartość domyślna to ustawień regionalnych serwera.

  • Opcje wykonanie kwerendy

  • -q" cmdline query "
    Wykonuje kwerendę po SQLCMD zostanie uruchomiony, ale nie jest zamykany SQLCMD po zakończeniu kwerendy.Rozdzielany średnikami wielu kwerendy mogą być wykonywane.Użyj znaków cudzysłowu do objęcia kwerendy, jak pokazano w poniższym przykładzie.

    W wiersz polecenia należy wpisać:

    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:

    Nie należy używać GO terminator w kwerendzie.

    Jeśli -b określono wraz z tej opcji, SQLCMD opuszcza błąd.-b jest opisany w dalszej części tego tematu.

  • **-Q"**cmdline query " and exit
    Wykonuje kwerendę po SQLCMD rozpoczyna się i natychmiast kończy SQLCMD.Rozdzielany średnikami wielu kwerendy mogą być wykonywane.

    Użyj znaków cudzysłowu do objęcia kwerendy, jak pokazano w poniższym przykładzie.

    W wiersz polecenia należy wpisać:

    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:

    Nie należy używać GO terminator w kwerendzie.

    Jeśli -b określono wraz z tej opcji, SQLCMD opuszcza błąd.-b jest opisany w dalszej części tego tematu.

  • -e echo input
    Skrypty wprowadzania zapisu do wyjścia standardowego (urządzeniaSTDOUT).

  • -I enable Quoted Identifiers
    Ustawia opcję połączenia zestaw QUOTED_IDENTIFIER on.Domyślnie jest zestaw na OFF.Aby uzyskać więcej informacji zobaczzestaw QUOTED_IDENTIFIER (języka Transact-SQL).

  • -tquerytime_out
    Określa liczbę sekund, po upływie limitu czasu polecenia (lub instrukcja języka SQL).Ta opcja powoduje SQLCMD wykonywanie wykonywanie skryptów SQLCMDSTATTIMEOUT zmiennej.Jeśli time_out nie określono wartości, limit czas nie ma polecenia. The querytime_out must be a number between 1 and 65535.Jeżeli podano wartość nie jest liczbą lub nie spada do tego zakres SQLCMD generuje komunikat o błędzie.

    Uwaga

    Wartość limitu czas rzeczywistego mogą się różnić od podanego time_out wartość przez kilka sekund.

  • -vvar*=value[ var=*value...]
    Creates a sqlcmdscripting variable that can be used in a sqlcmd script.Jeśli wartość zawiera spacje, należy wpisać wartość w cudzysłowie.Można określić wiele var="values" wartości.Jeśli występują błędy w żadnej wartości SQLCMD generuje komunikat o błędzie, a następnie kończy działanie.

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

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

  • -x disable variable substitution
    Powoduje, że SQLCMD ignorowanie zmiennych wykonywanie wykonywanie skryptów.Jest to przydatne, jeśli skrypt zawiera wiele instrukcji INSERT, które mogą zawierać ciągi, które mają ten sam format jak regularne zmiennych, takich jak $)variable_name).

  • Opcje formatowania

  • -hheaders
    Określa liczbę wierszy, które mają zostać wydrukowane między kolumna nagłówków.Wartością domyślną jest wydrukować nagłówki jeden raz dla każdego zestaw wyniki kwerendy.Ta opcja powoduje SQLCMD wykonywanie wykonywanie skryptów SQLCMDHEADERS zmiennej.Użycie wartość -1 , aby określić, że nagłówki nie muszą być drukowane.Powoduje, że każdą wartość, która nie jest prawidłowa SQLCMD , aby generować komunikat o błędzie, a następnie Zamknij.

  • -scol_separator
    Określa kolumna-znak separatora.Wartością domyślną jest puste miejsce.Ta opcja powoduje SQLCMD wykonywanie wykonywanie skryptów SQLCMDCOLSEP zmiennej.Aby użyć znaków, które mają specjalne znaczenie w systemie operacyjnym, takich jak (handlowe i&), lub średnika (;), znak należy ująć w cudzysłów (""). Separator kolumna może być dowolnym znakiem, 8-bitowych.

  • -wcolumn_width
    Określa szerokość ekranu danych wyjściowych.Ta opcja powoduje SQLCMD wykonywanie wykonywanie skryptów SQLCMDCOLWIDTH zmiennej.Szerokość kolumna musi być liczbą większą niż 8 i mniej niż 65536.Jeśli określony kolumna szerokości nie spada do tego zakres SQLCMD generuje i komunikat o błędzie.Domyślna szerokość wynosi 80 znaków.Gdy do linii danych wyjściowych przekracza określony kolumna szerokość, jest ona zawijany do następnego wiersza.

  • -W remove trailing spaces
    Ta opcja usuwa spacje końcowe z kolumna.Użyj tej opcji razem z -s opcji w przypadku przygotowywania danych, które mają być eksportowane do innej aplikacji.Nie można używać z -y or -Y opcje.

  • -k[ 1 | 2 ] remove[replace] control characters
    Usuwa wszystkie znaki kontrolne, takie jak tabulatory i znaki nowego wiersza z danych wyjściowych.Pozwala to zachować formatowanie kolumn, gdy dane są zwracane.Jeżeli określono wartość 1, oraz znaki kontrolne zostały zastąpione przez pojedynczą spację.Jeżeli określono wartość 2, znaki kontrolne kolejnych zostały zastąpione przez pojedynczą spację.

  • -ydisplay_width
    Zestawy SQLCMD wykonywanie wykonywanie skryptów SQLCMDMAXFIXEDTYPEWIDTH zmiennej.Wartość domyślna = 0 (nie ustawiona).Ogranicza to liczbę znaków, które są zwracane dla typów danych o zmiennej długości w dużych:

    • varchar(max)

    • nvarchar(max)

    • varbinary(max)

    • xml

    • UDT (typy danych zdefiniowane przez użytkownika)

    • text

    • ntext

    • image

    Uwaga

    UDTs może być o stałej długości, w zależności od wykonania.Jeśli ta długość stałej długości UDT jest krótsza, display_width, zwracana wartość UDT nie podlega omawianej luce. Jednakże jeżeli długość jest dłuższa niż display_width, dane wyjściowe zostaną obcięte.

    Jeżeli display_width wynosi 0, dane wyjściowe zostaną obcięte w 1 MB.Można użyć: polecenie XML ON, aby uniknąć obcięcia dane wyjściowe.: Polecenie XML ON jest opisany w dalszej części tego tematu.

    Important noteImportant Note:

    Użycie -y 0 opcji z wyjątkową ostrożność, ponieważ może spowodować problemy z wydajnością poważne zarówno na serwerze, jak i sieci, w zależności od rozmiaru zwracane dane.

  • -Ydisplay_width
    Zestawy SQLCMD wykonywanie wykonywanie skryptów SQLCMDMAXVARTYPEWIDTH zmiennej.Wartość domyślna to 256.Ogranicza liczbę znaków, które są zwracane dla następujących typów danych:

    • char

    • nchar

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

    • nvarchar(n) gdzie 1<n<4000

    • sql_variant

  • Opcje raportowania błędów

  • -b on error batch abort
    Określa, że SQLCMD kończy działanie i zwraca wartość DOS ERRORLEVEL, gdy wystąpi błąd.Wartość, która jest zwracany błąd systemu DOS poziom zmienna jest 1 when the SQL Server komunikat o błędzie zawiera ważności poziom większa niż 10; w przeciwnym razie, zwrócona wartość jest 0.Jeśli -V opcja została zestaw oprócz -b, SQLCMD nie zgłosi błąd, jeśli poziom ważności ma wartość niższą niż wartości zestaw przy użyciu -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).

    Jeśli sqlcmd skrypt zawiera niepoprawne komentarz, błąd składni lub nie ma zmiennej wykonywanie wykonywanie skryptów, zwrócona wartość ERRORLEVEL wynosi 1.

  • -V severitylevel
    Określa poziom ważności, który jest używany do zestaw zmienną ERRORLEVEL.Komunikaty o błędach, których poziomy ważności mniejszą lub równą tej wartość zestaw ERRORLEVEL.Wartości, które są mniejsze od zera są raportowane jako 0.Pliki partia i CMD można używać do testowania wartość zmiennej ERRORLEVEL.

  • -merror_level
    Formanty, które komunikaty o błędach są wysyłane do STDOUT.Komunikaty o poziomie ważności, mniejsze lub równe na tym poziomie są wysyłane.Gdy ta wartość jest ustawiona na wartość -1, wszystkie wiadomości, włączając w to komunikaty informacyjne, są wysyłane.Spacje nie są dozwolone między -m and wartość -1.For example, -m-1 is valid, and -m-1 is not.

    Ta opcja ustawia również SQLCMD wykonywanie wykonywanie skryptów SQLCMDERRORLEVEL zmiennej.Ta zmienna jest domyślną 0.

  • Różne opcje

  • -apacket_size
    Żądanie pakiet o różnych rozmiarach.This option sets the sqlcmd scripting variable SQLCMDPACKETSIZE.packet_size must be a value between 512 and 32767.Wartość domyślna = 4096.Większego rozmiaru pakiet może zwiększyć wydajność, wykonywanie skryptów, które jeszcze inne instrukcje SQL między poleceniami GO.Można zażądać większy rozmiar pakiet.Niemniej jednak, jeśli żądanie zostało odrzucone, SQLCMD używa domyślnego serwera rozmiar pakiet.

  • -ccmd_end
    Określa terminator partia.Domyślnie polecenia są zakończone i wysyłane do SQL ServerWpisując słowa "GO" w wierszu samodzielnie. Po zresetowaniu terminator partia, nie należy używać Transact-SQL zastrzeżonych słów kluczowych lub znaków, które mają specjalne znaczenie w systemie operacyjnym, nawet jeśli są one poprzedzone ukośnikiem odwrotnym.

  • -L [ c ] list servers[clean output]
    Wyświetla listę komputerów lokalnie skonfigurowanego serwera i nazwy komputerów serwera, który jest emitowana w sieci.Tego parametru nie można używać w połączeniu z innymi parametrami.Maksymalna liczba komputerów serwerów, które mogą być podane jest 3000.Jeśli lista serwerów jest obcinana ze względu na rozmiar buforu, jest wyświetlany komunikat ostrzegawczy.

    Uwaga

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

    Parametr opcjonalny c jest określony, dane wyjściowe pojawia się bez serwerów: wiersz nagłówka i dla każdego wiersza serwera jest wyświetlana bez spacje wiodące. To jest nazywane czyste wyjściowy.Czyste wyjściowy zwiększa wydajność przetwarzania języki wykonywanie wykonywanie skryptów.

  • -p[ 1 ] print statistics[colon format]
    Wyświetla statystyki wydajności dla każdego zestaw wyników.Oto przykład formatu dla statystyki wydajności:

    Network packet size (bytes): n

    x xact[s]:

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

    Jeżeli:

    x = Liczba transakcji, które są przetwarzane przez SQL Server.

    t1 = Łączny czas dla wszystkich transakcji.

    t2 = Średni czas dla jednej transakcji.

    t3 = Średnia liczba transakcje na sekundę.

    Wszystkie godziny są w milisekundach.

    Jeśli parametr opcjonalny 1 jest określony, statystyk format danych wyjściowych w formacie oddzielone dwukropkiem, które mogą być łatwo importowania do arkusza kalkulacyjnego lub przetwarzane przez skrypt.

    Jeżeli parametr opcjonalny ma dowolną wartość inną niż 1, błąd jest generowany i SQLCMD kończy pracę.

  • -X [ 1 ] disable commands, startup script, enviroment variables [and exit]
    Wyłącza poleceń, które mogą naruszyć bezpieczeństwo systemu, gdy SQLCMD jest wykonywane z partia pliku.Nadal rozpoznawane wyłączonego polecenia; SQLCMD komunikat ostrzegawczy i kontynuuje działanie.Jeśli parametr opcjonalny 1 jest określony, SQLCMD generuje komunikat o błędzie, a następnie kończy działanie.Następujące polecenia są wyłączone, gdy -X używana jest opcja:

    • ED

    • **!!**command

    Jeśli -X opcja zostanie określona, to zapobiega zmiennych środowiskowych były przekazywane do SQLCMD.Ponadto zapobiega określona przy użyciu zmiennej wykonywanie wykonywanie skryptów SQLCMDINI z wykonywany skrypt uruchamiania.Aby uzyskać więcej informacji na temat sqlcmd wykonywanie wykonywanie skryptów zmiennych, zobacz Using sqlcmd with Scripting Variables.

  • -? show syntax summary
    Wyświetla podsumowanie składni SQLCMD opcje.

Remarks

Opcje nie muszą być stosowane w kolejności przedstawionej w sekcji Składnia.

Po zwróceniu wiele wyniki SQLCMD drukuje pusty wiersz między każdy zestaw wyniki w serii.Ponadto "<x>nie pojawia się komunikat dotyczy wierszy", nie ma zastosowania do wykonania instrukcja.

Aby użyć SQLCMD interaktywnie, wpisz SQLCMD z jednego lub więcej opcji, opisane we wcześniejszej części tego tematu, w wiersz polecenia.Aby uzyskać więcej informacji, zobacz Za pomocą narzędzia sqlcmd

Uwaga

Opcje -L, -Q, -Z or -i cause SQLCMD , aby zakończyć pracę po wykonaniu.

Całkowita długość SQLCMD wiersza polecenia w środowisku poleceń (Cmd.exe), w tym wszystkie argumenty i zmienne rozwinięta, to było co zależne od systemu operacyjnego dla programu Cmd.exe.

Pierwszeństwo zmiennej (niski wysoki)

  1. Zmienne środowiskowe poziomie systemu.

  2. Zmienne środowiskowe poziom użytkownika

  3. Polecenie shell)ZESTAW X = Y) ustawiona w wiersz polecenia przed uruchomieniem SQLCMD.

  4. sqlcmd-v X=Y

  5. : Setvar X Y

Uwaga

Aby wyświetlić zmiennych środowiskowych Panel sterowania, open System, a następnie kliknij przycisk Zaawansowane tab.

Zmienne wykonywanie wykonywanie skryptów SQLCMD

Variable

Przełącznik pokrewne

R/W

Default

SQLCMDUSER

-U

R

""

SQLCMDPASSWORD

-P

--

""

SQLCMDSERVER

-S

R

"DefaultLocalInstance"

SQLCMDWORKSTATION

-H

R

"Nazwa_komputera"

SQLCMDDBNAME

-d

R

""

SQLCMDLOGINTIMEOUT

-l

R/W

"8" (w sekundach)

SQLCMDSTATTIMEOUT

-t

R/W

"0" = oczekiwanie przez nieograniczony czas

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" = nieograniczony

SQLCMDEDITOR

R/W

"edit.com"

SQLCMDINI

R

""

SQLCMDUSER, SQLCMDPASSWORD i SQLCMDSERVER zestaw po : Połączenie

jest używany.

R wskazuje wartość zestaw tylko jeden raz podczas inicjowania programu.

Odczyt/Zapis wskazuje, że wartości mogą być modyfikowane za pomocą setvar polecenia i kolejnych poleceń będzie mieć wpływ nową wartość.

Polecenia Sqlcmd

Oprócz Transact-SQL instrukcje SQLCMD, następujące polecenia są także dostępne:

GO [count]

: Listy

[:] RESET

: Błąd

[:] ED

: Limit czasu

[:] !!

: Perftrace

[:] QUIT

: Połączenie

[:] EXIT

: On Error

: r

: Pomoc

: ServerList

:XML [ON | OFF]

: Setvar

: Listvar

Należy pamiętać o następujących, korzystając z SQLCMD poleceń:

  • Wszystkie SQLCMD poleceń, z wyjątkiem GO, musi być opatrzony prefiksem za pomocą dwukropka (:)).

    Important noteImportant Note:

    Aby zachować zgodność z istniejącym Osql skrypty, niektóre z poleceń zostanie rozpoznane bez dwukropek.Jest to wskazywane przez [:.

  • SQLCMD polecenia są rozpoznawane tylko wtedy, gdy pojawią się one na początku wiersza.

  • Wszystkie SQLCMD polecenia są przypadek niewrażliwe.

  • Każde polecenie musi być w osobnym wierszu.Polecenie nie może następować Transact-SQL Instrukcja lub innego polecenia.

  • Polecenia są wykonywane natychmiast.Nie są one wprowadzane w buforze wykonanie jako Transact-SQL instrukcje są.

  • Polecenia edycji

  • [:] ED
    Uruchamia Edytor tekstów.Tego edytora można używać do edytowania bieżącego Transact-SQL partia lub ostatnio wykonane partia. Aby dokonać edycji ostatniej partia wykonywany, ED polecenia muszą być wpisane bezpośrednio po ostatniej partia zakończyło się wykonywanie.

    Edytor tekstów jest określona przez zmienną środowiskową SQLCMDEDITOR.Domyślnym edytorem jest 'Edycja'.Aby zmienić ten edytor zestaw SQLCMDEDITOR zmiennej środowiskowej.Na przykład, aby ustawić edytora Microsoft Notatnik, w wiersz polecenia wpisz:

    SET SQLCMDEDITOR=notepad

  • [:] RESET
    Czyści bufor instrukcja.

  • : Listy
    Drukuje zawartość pamięci podręcznej instrukcja.

  • Variables

  • :Setvar <var> [ "value" ]
    Definiuje SQLCMD wykonywanie wykonywanie skryptów zmiennych.Zmienne wykonywanie wykonywanie skryptów mają następujący format: $(VARNAME).

    Nazwy zmiennych jest rozróżniana wielkość znaków.

    Zmienne wykonywanie wykonywanie skryptów zestaw w następujący sposób:

    • Domyślnie przy użyciu opcji wiersza polecenia.Na przykład -l opcja powoduje SQLCMDLOGINTIMEOUT SQLCMD zmiennej.

    • Jawnie przy użyciu : Setvar polecenia.

    • Definiując zmiennej środowiskowej przed uruchomieniem SQLCMD.

    Uwaga

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

    Jeśli zmienna określona przy użyciu : Setvar i zmiennej środowiskowej mają taką samą nazwę zmiennej, zdefiniowanej za pomocą : Setvar ma wyższy priorytet.

    W nazwach zmiennych nie może zawierać znaków spacji.

    W nazwach zmiennych nie mogą mieć tego samego formularza jako zmiennej wyrażenie, takie jak $ (var).

    Jeśli wartość ciąg wykonywanie wykonywanie skryptów zmienna zawiera spacje, ująć w cudzysłów.Jeśli nie określono wartości dla zmiennej wykonywanie wykonywanie skryptów, wykonywanie wykonywanie skryptów zmiennej zostanie usunięte.

  • : Listvar
    Wyświetla listę zmiennych wykonywanie wykonywanie skryptów, które są aktualnie zestaw.

    Uwaga

    Tylko wykonywanie wykonywanie skryptów zmiennych, które mogą być ustawiane za pomocą SQLCMDi tych, które są ustawiane przy użyciu : Setvar polecenia zostaną wyświetlone.

  • Dane wyjściowe polecenia

  • : Błąd **<filename>|STDERR|STDOUT
    Wszystkie błąd dane wyjściowe są przekierowywane do pliku określonego przez file name, aby obiektu stderr or to STDOUT.The Error command can appear multiple times in a script.Domyślnie dane wyjściowe błąd jest wysyłany do obiektu stderr.

    • file name
      Tworzy i otwiera plik, który będzie odbierał dane wyjściowe.Jeżeli plik już istnieje, zostanie obcięty do zero bajtów.Jeśli plik jest niedostępny z powodu uprawnień lub innych czynników, dane wyjściowe nie ma być włączone i zostanie wysłany do ostatniego określonego lub domyślnego obiekt docelowy.

    • OBIEKTU STDERR
      Przełącza na wyjście o obiektu stderr strumienia.Jeżeli ten został przekierowany, docelowego, do której został przekierowany strumienia wystąpi błąd wyjścia.

    • STDOUT
      Przełącza na wyjście o STDOUT strumienia.Jeżeli ten został przekierowany, docelowego, do której został przekierowany strumienia wystąpi błąd wyjścia.

  • :Out <filename>| STDERR| STDOUT
    Tworzy i przekierowuje wszystkie wyniki kwerendy w pliku określonym przez file name, aby obiektu stderr or to STDOUT.Domyślnie dane wyjściowe są wysyłane do STDOUT.Jeżeli plik już istnieje, zostanie obcięty do zero bajtów.The Out command can appear multiple times in a script.

  • :Perftrace <filename>| STDERR| STDOUT
    Tworzy i przekierowuje wszystkie informacje śledzenia wydajności w pliku określonym przez file name, aby obiektu stderr or to STDOUT.Domyślnie wyniki śledzenia wydajności jest wysyłana do STDOUT.Jeżeli plik już istnieje, zostanie obcięty do zero bajtów.The Perftrace command can appear multiple times in a script.

  • Wykonanie polecenia sterowania

  • :On Error[ exit | ignore]
    Ustawia akcja mają być wykonywane, gdy wystąpi błąd w skrypcie lub partia wykonanie.

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

    Gdy ignore Opcja jest używana, SQLCMD ignoruje ten błąd i kontynuuje wykonywanie partia lub skryptu.Domyślnie komunikat o błędzie zostanie wydrukowany.

  • [:] QUIT
    Powoduje, że SQLCMD , aby zakończyć.

  • [:] EXIT[ (statement) ]
    Pozwala na używanie jako wartość zwracana z wyników instrukcja SELECT SQLCMD.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 200 x przebiegów całego 4-bajtowe liczby całkowitej.Składnia jest następująca:

    :EXIT(query)

    Na przykład:

    :EXIT(SELECT @@ROWCOUNT)

    Można również dołączyć ZAKOŃCZ parametr jako część partia pliku.Na przykład w wiersz polecenia należy wpisać:

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

    The sqlcmd utility sends everything between the parentheses () to the server.Jeśli systemowa procedura składowana powoduje zaznaczenie zestaw i zwraca wartość, zwracany jest tylko zaznaczenie.The EXIT**()** statement with nothing between the parentheses executes everything before it in the batch and then exits without a return value.

    Gdy kwerenda jest nieprawidłowa jest określona, SQLCMD zakończy pracę bez wartości zwracanej.

    Poniżej przedstawiono listę formatów EXIT:

    • : ZAKOŃCZ

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

    • : EXIT)

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

    • : EXIT(query)

    Wykonuje partia, które zawiera kwerendę, a następnie kończy działanie po zwraca wyniki kwerendy.

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

    RAISERROR(50001, 10, 127)

    Ten błąd może spowodować, że SQLCMD skryptu do zakończenia i zwraca identyfikator wiadomości 50001 do klient.

    Zwracane wartości -1 do-99 są zarezerwowane przez SQL Server; SQLCMD definiuje następujące dodatkowe wartości zwracane:

    Zwraca wartości

    Description

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

  • GO [count]
    OBLICZ sygnalizuje zakończenie partia oraz wykonywanie wszelkich w pamięci podręcznej Transact-SQL instrukcje. Podczas określania wartości parametru count, wykonanie instrukcji w pamięci podręcznej count czas jako jednej partia.

  • Dodatkowe polecenia

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

    Uwaga

    <filename> względem katalog startowy, w którym jest do odczytu SQLCMD zostało uruchomione.

    Plik zostanie odczytać i uruchamiane po napotkaniu terminator partia.Można wystawiać wielu : r polecenia.Plik może zawierać dowolne SQLCMD polecenia.Dotyczy to również terminator partia PRZEJDŹ DO.

    Uwaga

    Liczba linii wyświetlanych w trybie interakcyjnym będzie zwiększana o jeden dla każdego : r polecenie napotkał.The :r command will appear in the output of the list command.

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

  • : Połączenie server_name[**\**instance_name] [-l timeout] [-U user_name [-P password]]
    Łączy się z wystąpienie SQL Server. Również zamknięcie bieżącego połączenia.

    Opcje limitów czas:

    0

    zawsze Czekaj

    n>0

    Poczekaj, aż n sekund

    Zmienna wykonywanie wykonywanie skryptów SQLCMDSERVER będzie odzwierciedlał bieżącego aktywnego połączenia.

    Jeśli timeout nie jest określony, domyślnym jest wartość zmiennej SQLCMDLOGINTIMEOUT.

    If only user_nameis specified (either as an option, or as an environment variable), the user will be prompted to enter a password.Nie jest to PRAWDA, jeśli ustawiono SQLCMDUSER lub SQLCMDPASSWORD zmiennych środowiskowych.Jeśli dostępne są opcje ani zmiennych środowiskowych, tryb uwierzytelnianie systemu Windows jest używany do logowania.Na przykład połączyć się z wystąpienie, instance1, z SQL Server, myserver, przy użyciu zintegrowanych zabezpieczeń można użyć następujących czynności:

    :connect myserver\instance1

    Aby połączyć się z domyślnym wystąpienie myserver Korzystanie ze wykonywanie wykonywanie skryptów zmiennych, możesz użyć następujących czynności:

    :setvar myusername test

    :setvar myservername myserver

    :connect $(myservername) $(myusername)

  • [:] !!< command>
    Wykonuje polecenia systemu operacyjnego.Aby wykonać to polecenie systemu operacyjnego, rozpocząć wiersz (dwa znaki wykrzyknik**!!**) Po poleceń systemu operacyjnego.Na przykład:

    :!!Dir

    Uwaga

    Polecenie jest wykonywane na komputerze, na którym SQLCMD jest uruchomiona.

  • :XML [ON | OFF]
    Aby uzyskać więcej informacji zobacz "Format danych wyjściowych XML," w dalszej części tego tematu

  • : Pomoc
    Wyświetla listę SQLCMD polecenia wraz z krótkim opisem każdego polecenia.

SQLCMD nazwy plików

SQLCMD pliki wejściowe za pomocą można określić-i lub opcja : r polecenia.Pliki wyjściowe można określić przy użyciu -o lub opcja : Błąd, : Limit czasu and : Perftrace polecenia.Poniżej przedstawiono wskazówki dotyczące pracy z tymi plikami:

  • : Błąd, : Limit czasu and : Perftrace należy użyć osobnych <filename>. Jeśli takie same <filename> jest używana, dane wejściowe z poleceń może być intermixed.

  • Jeżeli plik wejściowy, który znajduje się na serwerze zdalnym jest wywoływana z SQLCMD na komputerze lokalnym i plik zawiera ścieżka do pliku dysku, takie jak: Brak c:\OutputFile.txt.Plik wyjściowy zostanie utworzony na komputerze lokalnym, a nie na serwerze zdalnym.

  • Ścieżki do prawidłowych plików należą: C:\<filename>,\\<Server>\<Share$>\<filename> and "C:\Some Folder\<file name>".Jeśli istnieje spacji w ścieżce, użyj znaków cudzysłowu.

  • Każdy nowy SQLCMD sesja spowoduje zastąpienie istniejących plików, które mają takie same nazwy.

Komunikaty informacyjne

SQLCMD drukuje komunikat informacyjny, które są wysyłane przez serwer.W poniższym przykładzie po Transact-SQL instrukcje są wykonywane, komunikat informacyjny jest drukowany.

W wiersz polecenia wpisz następujące polecenie:

sqlcmd

At the sqlcmd prompt type:

USE AdventureWorks;

GO

Po naciśnięciu klawisza ENTER, drukowany jest następujący komunikat informacyjny: "Kontekstu zmienionych bazy danych do"AdventureWorks". „

Format danych wyjściowych z języka Transact-SQL kwerendy

SQLCMD drukuje pierwszy nagłówek kolumna, która zawiera nazwy kolumn na liście Wybierz.Nazwy kolumn są rozdzielone za pomocą znaku SQLCMDCOLSEP.Domyślnie jest to miejsce.Jeśli nazwa kolumna jest krótszy niż szerokość kolumna, danych wyjściowych jest wypełniane ze spacjami do następnej kolumna.

Ten wiersz ma następować linią separatora, który jest ciąg znaków pauzy.Następujące dane wyjściowe pokazano przykład.

Rozpocznij SQLCMD.Na SQLCMD wiersz polecenia, wpisz następujące polecenie:

USE AdventureWorks;

SELECT TOP (2) ContactID, FirstName, LastName

FROM Person.Contact;

GO

Po naciśnięciu klawisza ENTER jest retuned następujący zestaw wyników.

ContactID FirstName LastName

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

1 Syed Abbas

2 Catherine Abel

(2 row(s) affected)

Mimo że ContactID Kolumna jest tylko 4 znaki szerokie, ma już rozwinąć, aby uwzględnić dłuższe nazwy kolumny. Domyślnie dane wyjściowe do zakończenia na 80 znaków.To można zmienić za pomocą -w Opcja albo ustawiając zmienną wykonywanie wykonywanie skryptów SQLCMDCOLWIDTH.

Format danych wyjściowych XML

XML wyjścia jest wynikiem klauzulę FOR XML jest wyjściowych, niesformatowane, w postaci ciągłego strumienia.

Jeśli oczekujesz, że dane wyjściowe XML, należy użyć następującego polecenia: :XML ON.

Uwaga

SQLCMD zwraca komunikaty o błędach w zwykłym formacie.Należy zauważyć, że komunikaty o błędach są również dane wyjściowe w strumieniu XML tekst w formacie XML.Za pomocą :XML ON, SQLCMD nie wyświetla komunikaty informacyjne.

Aby zestaw trybu XML, należy użyć następującego polecenia: :XML OFF.

Polecenie OBLICZ nie powinny być wyświetlane przed wydaniem polecenia XML OFF, ponieważ polecenie XML OFF przełącza SQLCMD z powrotem do orientacji wiersza danych wyjściowych.

Dane XML (strumieniowo) i dane zestaw wierszy nie mogą być łączone.Jeśli polecenie XML ON nie zostało wydane przed Transact-SQL Instrukcja, która wyprowadza strumieni XML zostanie wykonana, dane wyjściowe będą się zniekształcony. Wydano polecenie XML ON, można wykonać Transact-SQL instrukcje wyjściowy zestawów zwykły wiersz.

Uwaga

The :XML command does not support the zestaw STATISTICS XML instrukcja.

Najważniejsze wskazówki dotyczące SQLCMD

Za pomocą następującej wskazówki pomagają zmaksymalizować bezpieczeństwo i wydajność.

  • Użyj zintegrowanych zabezpieczeń.

  • Użycie -X w środowiskach zautomatyzowany.

  • Zabezpieczenie danych wejściowych i wyjściowych plików przy użyciu odpowiednie uprawnienia systemu plików NTFS.

  • Aby zwiększyć wydajność, należy wykonać jak najwięcej tekstu w jednym SQLCMD sesja jak to możliwe, zamiast w szeregu sesja.

  • Ustaw wartość limitu czas dla większej, niż się oczekuje na wykonać zadań wsadowych lub kwerendy będzie trwało wykonać partia lub kwerendy.