Sdílet prostřednictvím


Nástroj sqlcmd

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)databáze SQL v Microsoft Fabric

Pomocí nástroje sqlcmd můžete zadat příkazy Transact-SQL, systémové procedury a soubory skriptů prostřednictvím různých režimů:

  • Na příkazovém řádku.
  • V Editoru dotazů v režimu SQLCMD.
  • V souboru skriptu systému Windows.
  • V kroku operačního systému (cmd.exe) pracovního kroku agenta SQL Serveru.

Note

I když je ID Microsoft Entra novým názvem proAzure Active Directory (Azure AD), Azure AD zůstává v některých pevně zakódovaných prvcích, jako jsou pole uživatelského rozhraní, zprostředkovatelé připojení, kódy chyb a rutiny, aby se zabránilo narušení existujících prostředí. V tomto článku jsou tyto dva názvy zaměnitelné.

Varianty sqlcmd

Existují dvě varianty sqlcmd :

  • sqlcmd (Go): go-mssqldbsqlcmd založený na Go, někdy označovaný jako go-sqlcmd. Tato verze je samostatný nástroj, který si můžete stáhnout nezávisle na SQL Serveru. Běží ve Windows, macOS, Linuxu a v kontejnerech.

  • <|vq_3487|>sqlcmd (ODBC): Platformně kompatibilní sqlcmd, založený na rozhraní ODBC, dostupný se SQL Serverem nebo příkazovými nástroji Microsoftu a součástí balíčku na Linuxu . Běží také ve Windows, macOS, Linuxu a v kontejnerech.

Pokud chcete zjistit, která varianta a verze sqlcmd je nainstalována ve vašem systému, přečtěte si téma Kontrola nainstalované verze nástroje sqlcmd.

Informace o tom, jak získat sqlcmd, naleznete v tématu Stažení a instalace nástroje sqlcmd.

Podpora TDS 8.0

SQL Server 2025 (17.x) zavádí podporu TDS 8.0 pro nástroj sqlcmd .

Syntax

V tomto článku jsou výrazy možnost, parametr, argument příkazového řádku a přepínač zaměnitelné.

Sqlcmd (Go) má dva režimy nápovědy: --help pro moderní dílčí příkazy a -? pro příznaky kompatibilní s rozhraním ODBC.

Moderní příkazy (--help)

Usage:
  sqlcmd [flags]
  sqlcmd [command]

Examples:
# Install/Create, Query, Uninstall SQL Server
  sqlcmd create mssql --accept-eula --using https://aka.ms/AdventureWorksLT.bak
  sqlcmd open ads
  sqlcmd query "SELECT @@version"
  sqlcmd delete
# View configuration information and connection strings
  sqlcmd config view
  sqlcmd config cs

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  config      Modify sqlconfig files using subcommands like "sqlcmd config use-context mssql"
  create      Install/Create SQL Server, Azure SQL, and Tools
  delete      Uninstall/Delete the current context
  help        Help about any command
  open        Open tools (e.g ADS) for current context
  query       Run a query against the current context
  start       Start current context
  stop        Stop current context

Flags:
  -?, --?                  help for backwards compatibility flags (-S, -U, -E etc.)
  -h, --help               help for sqlcmd
      --sqlconfig string   configuration file (default "/Users/<currentUser>/.sqlcmd/sqlconfig")
      --verbosity int      log level, error=0, warn=1, info=2, debug=3, trace=4 (default 2)
      --version            print version of sqlcmd

Use "sqlcmd [command] --help" for more information about a command.

Příznaky kompatibilní s rozhraním ODBC (-?)

sqlcmd
   -a packet_size
   -A (dedicated administrator connection)
   -b (terminate batch job if there is an error)
   -c batch_terminator
   -C (trust the server certificate)
   -d db_name
   -e (echo input)
   -E (use trusted connection)
   -F hostname_in_certificate
   -g (enable column encryption)
   -G (use Azure Active Directory for authentication)
   -h rows_per_header
   -H workstation_name
   -i input_file
   -I (enable quoted identifiers, always on)
   -k[1 | 2] (remove or replace control characters)
   -K application_intent
   -l login_timeout
   -L[c] (list servers, optional clean output)
   -m error_level
   -M multisubnet_failover (always enabled)
   -N[s|m|o] (encrypt connection)
   -o output_file
   -P password
   -q "cmdline query"
   -Q "cmdline query" (and exit)
   -r[0 | 1] (msgs to stderr)
   -R (ignored, client regional settings not used)
   -s col_separator
   -S [protocol:]server[instance_name][,port]
   -t query_timeout
   -u (unicode output file)
   -U login_id
   -v var = "value"
   -V error_severity_level
   -w screen_width
   -W (remove trailing spaces)
   -x (disable variable substitution)
   -X[1] (disable commands, startup script, environment variables, optional exit)
   -y variable_length_type_display_width
   -Y fixed_length_type_display_width
   -z new_password
   -Z new_password (and exit)
   --authentication-method (Azure SQL authentication method)
   --driver-logging-level (mssql driver log level)
   --vertical (print results in vertical format)
   -? (usage)

Zásadní změny v sqlcmd (ODBC)

Několik přepínačů a chování se v nástroji sqlcmd (Go) liší. Pro nejaktuálnější seznam chybějících příznaků kvůli zpětné kompatibilitě se podívejte na diskuzi na GitHubu o prioritizaci implementace příznaků zpětné kompatibility.

  • Sqlcmd (Go) podporuje -P přepínač. Pro ověřování SQL Serveru můžete zadat hesla prostřednictvím těchto mechanismů:

    • -P Přepínač příkazového řádku
    • Proměnná prostředí SQLCMDPASSWORD
    • Příkaz :CONNECT
    • Po zobrazení výzvy zadejte heslo pro dokončení připojení.
  • Přepínač -r vyžaduje 0 nebo 1 argument.

  • Přepínač -R se ignoruje. Modul runtime Go neposkytuje přístup k informacím o národním prostředí uživatele.

  • Přepínač -I se ignoruje. Identifikátory v uvozovkách jsou vždy povolené. Pokud chcete zakázat chování identifikátoru v uvozovkách, přidejte do skriptů SET QUOTED IDENTIFIER OFF.

  • Přepínač -M se ignoruje. Sqlcmd (Go) vždy umožňuje převzetí služeb při selhání s více podsítěmi.

  • Přebírá -N hodnotu řetězce k určení volby šifrování, která je jedním z s[trict],t[rue]/m[andatory]/yes/1 ,o[ptional]/no/0/f[alse] nebo .disable

    • Pokud nezadáte -N a -C, sqlcmd vyjedná ověřování se serverem bez ověření certifikátu serveru.
    • Pokud zadáte -N , ale ne -C, sqlcmd vyžaduje ověření certifikátu serveru. Hodnota false pro šifrování by stále mohla vést k šifrování přihlašovacího paketu.
    • Pokud zadáte obojí -N i -C, sqlcmd použije jejich hodnoty pro vyjednávání šifrování.
    • Další informace o vyjednávání šifrování klienta/serveru najdete v tématu MS-TDS PRELOGIN.

    Important

    V SYSTÉMU SQL Server 2025 (17.x) -N může být o (pro optional), m (pro mandatory, výchozí) nebo s (pro strict). Pokud nezadáte -N, -Nm je výchozí hodnota (for mandatory). Toto chování je zásadní změna z SQL Serveru 2022 (16.x) a starších verzí.

  • S přepínačem -u bude mít vygenerovaný výstupní soubor Unicode předponu s pořadím bajtů UTF-16 little-endian (BOM).

  • Některá chování, která byla zachována kvůli zachování kompatibility s OSQL některými datovými typy, se můžou změnit, například zarovnání záhlaví sloupců.

  • Všechny příkazy se musí vejít na jeden řádek, i EXIT. Interaktivní režim nekontroluje otevřené závorky ani uvozovky pro příkazy a nezobrazuje výzvu k následným řádkům. Toto chování se liší od verze ODBC, která umožňuje spuštění EXIT(query) dotazu přes více řádků.

Sqlcmd (Go) podporuje sdílenou paměť, pojmenované kanály a přenos TCP. K vynucení protokolu použijte odpovídající předponu protokolu na názvu serveru:

  • lpc pro sdílenou paměť (pouze localhost)
  • np pro pojmenované kanály nebo použijte cestu pojmenovaného kanálu UNC jako název serveru.
  • tcp pro TCP

Pokud nezadáte protokol, sqlcmd se pokusí připojit v tomto pořadí: lpc>np>tcp. Při připojování ke vzdálenému hostiteli se lpc přeskočí.

Enhancements

  • :Connect má volitelný -G parametr pro výběr jedné z metod ověřování pro Azure SQL Database - SqlAuthentication, ActiveDirectoryDefault, ActiveDirectoryIntegrated, ActiveDirectoryServicePrincipal, , ActiveDirectoryManagedIdentity, . ActiveDirectoryPassword. Další informace naleznete v tématu Ověřování pomocí id Microsoft Entra v sqlcmd. Pokud -G není k dispozici, použije se integrované zabezpečení nebo ověřování SQL Serveru v závislosti na přítomnosti parametru uživatelského jména -U.

  • Parametr příkazového řádku --driver-logging-level umožňuje zobrazit trasování z ovladače go-mssqldb. Použijte 64 k zobrazení všech stop.

  • Sqlcmd (Go) může tisknout výsledky ve svislém formátu. K nastavení použijte přepínač příkazového --vertical řádku. Proměnná skriptu SQLCMDFORMAT to také řídí.

Možnosti příkazového řádku

Následující tabulka uvádí možnosti příkazového řádku dostupné v nástroji sqlcmd a operační systémy, které podporují.

Možnost příkazového řádku Podporováno ve Windows Podporováno v Linuxu a macOS
Možnosti související s přihlášením
-A Yes No
-C Yes Yes
-d db_name Yes Yes
-D Yes Yes
-l login_timeout Yes Yes
-E Yes Yes
-F hostname_in_certificate Yes Yes
-g Yes Yes
-G Yes Yes
-H název_pracovní_stanice Yes Yes
-j Yes Yes
-J server_certificate No Yes
-K application_intent Yes Yes
-M multisubnet_failover Yes Yes
-N[s|m|o] Yes Yes
-P heslo Yes Yes
-S [protokol:]server[\instance_name][,port] Yes Yes
-U login_id Yes Yes
-z new_password Yes Yes
-Z new_password Yes Yes
Možnosti vstupu a výstupu
-f codepage | i:codepage[,o:codepage] | o:codepage[,i:codepage] Yes Yes
-i input_file[,input_file2...] Yes Yes
-o výstupní_soubor Yes Yes
-r[0 | 1] Yes Yes
-R Yes Yes
-u Yes Yes
Možnosti spouštění dotazů
-e Yes Yes
-I Yes Yes
-q "cmdline query" Yes Yes
-Q "dotaz příkazového řádku" Yes Yes
-t query_timeout Yes Yes
-v var = hodnota [ var = hodnota... ] Yes No
-x Yes Yes
Možnosti formátu
-h headers Yes Yes
-k [1 | 2] Yes Yes
-s col_separator Yes Yes
-w screen_width Yes Yes
-W Yes Yes
-y variable_length_type_display_width Yes Yes
-Y fixed_length_type_display_width Yes Yes
Možnosti zasílání zpráv o chybách
-b Yes Yes
-m error_level Yes Yes
-V error_severity_level Yes Yes
Různé možnosti
- a packet_size Yes Yes
-c batch_terminator Yes Yes
-L[c] Yes No
-p[1] Yes Yes
-X[1] Yes Yes
-? Yes Yes

-A

Platí jenom pro: Windows. Linux a macOS se nepodporují.

Přihlásí se k SQL Serveru pomocí vyhrazeného připojení správce (DAC). Tento druh připojení použijte k řešení potíží se serverem. Toto připojení funguje jenom se serverovými počítači, které podporují DAC. Pokud daC není k dispozici, sqlcmd vygeneruje chybovou zprávu a ukončí se. Další informace o jazyce DAC naleznete v tématu Diagnostické připojení pro správce databáze. Možnost -A není u možnosti -G podporovaná. Při připojování ke službě Azure SQL Database pomocí -Amusíte být správcem na logickém SQL serveru. DaC není k dispozici pro správce Microsoft Entra.

Note

Informace o tom, jak vytvořit vyhrazené připojení správce (DAC) v systému macOS nebo Linux, najdete v tématu Pokyny pro programování.

-C

Tuto možnost použijte ke konfiguraci klienta tak, aby implicitně důvěřoval certifikátu serveru bez ověření. Tato možnost je ekvivalentní možnosti ADO.NET TRUSTSERVERCERTIFICATE = true.

Pro nástroj sqlcmd (Go) platí také následující podmínky:

  • Pokud je nezadáte -N a -C, sqlcmd vyjedná ověřování se serverem bez ověření certifikátu serveru.
  • Pokud zadáte -N , ale ne -C, sqlcmd vyžaduje ověření certifikátu serveru. Hodnota false pro šifrování by stále mohla vést k šifrování přihlašovacího paketu.
  • Pokud zadáte obojí -N i -C, sqlcmd použije jejich hodnoty pro vyjednávání šifrování.

-d db_name

Při spuštění USE <db_name> se vydá příkaz . Tato možnost nastaví sqlcmd skriptovací proměnnou SQLCMDDBNAME. Tento parametr určuje počáteční databázi. Výchozí hodnotou je vlastnost výchozí databáze vašeho přihlášení. Pokud databáze neexistuje, vygeneruje se chybová zpráva a sqlcmd ukončí.

-D

Interpretuje název serveru zadaný pro -S jako název DSN místo názvu hostitele. Další informace najdete v tématu Podpora DSN v sqlcmd a bcp.

Note

Možnost -D je dostupná jenom na klientech s Linuxem a macOS. Na klientech s Windows odkazuje na zastaralou možnost, která se odebere a je ignorována.

-l časový limit přihlášení

Určuje časový limit v sekundách pro vypršení sqlcmd přihlášení k ovladači ODBC při pokusu o připojení k serveru. Tato možnost nastaví sqlcmd skriptovací proměnnou SQLCMDLOGINTIMEOUT. Výchozí časový limit pro přihlášení k sqlcmd je 8 sekund. Při použití -G možnosti připojení ke službě Azure SQL Database nebo Azure Synapse Analytics a ověření pomocí ID Microsoft Entra se doporučuje hodnota časového limitu alespoň 30 sekund. Časový limit přihlášení musí být číslo mezi 0 a 65534. Pokud hodnota není číselná nebo nepřechází do této oblasti, sqlcmd vygeneruje chybovou zprávu. Hodnota 0 určuje, že časový limit je nekonečný.

-E

Používá důvěryhodné připojení místo použití uživatelského jména a hesla pro přihlášení k SQL Serveru. Ve výchozím nastavení, pokud není -E uvedeno, sqlcmd používá možnost důvěryhodného připojení.

Možnost -E ignoruje možné nastavení proměnných prostředí pro uživatelské jméno a heslo, jako je SQLCMDPASSWORD. Pokud je možnost -E použita společně s možností -U nebo možností -P, vygeneruje se chybová zpráva.

Note

Další informace o vytváření důvěryhodných připojení, která používají integrované ověřování z klienta systému Linux nebo macOS, naleznete v tématu Použití integrovaného ověřování.

-F hostname_in_certificate

Určuje jiný, očekávaný běžný název (CN) nebo alternativní název subjektu (SAN) v certifikátu serveru, který se má použít při ověřování certifikátu serveru. Bez této možnosti ověření certifikátu zajistí, že hodnota CN nebo SAN v certifikátu odpovídá názvu serveru, ke kterému se připojujete. Tento parametr můžete použít, pokud se název serveru neshoduje s CN nebo SAN, například při použití aliasů DNS.

Například:

sqlcmd -S server01 -Q "SELECT TOP 100 * FROM WideWorldImporters.Sales.Orders" -A -Ns -F server01.adventure-works.com

Note

Sqlcmd (Go) také používá -F k zadání názvu hostitele v certifikátu serveru. Pokud chcete vytisknout výsledky ve svislém formátu, sqlcmd (Go) místo toho použije --vertical přepínač.

-g

Nastaví šifrování sloupce na Enabled. Další informace naleznete v tématu Always Encrypted. Podporují se jenom hlavní klíče uložené ve službě Windows Certificate Store. Možnost -g vyžaduje alespoň sqlcmd verze 13.1. Pokud chcete zjistit verzi, spusťte sqlcmd -?příkaz .

-G

Pomocí této možnosti se můžete ověřit pomocí Microsoft Entra při připojování ke službě Azure SQL Database nebo Azure Synapse Analytics. Tato možnost nastaví sqlcmd skriptovací proměnnou SQLCMDUSEAAD = true. Možnost -G vyžaduje alespoň sqlcmd verze 13.1. Pokud chcete zjistit verzi, spusťte sqlcmd -?příkaz . Další informace najdete v tématu Ověřování Microsoft Entra pro Azure SQL. Možnost -A není u možnosti -G podporovaná.

Možnost -G platí jenom pro Azure SQL Database a Azure Synapse Analytics.

Interaktivní ověřování Microsoft Entra není v současné době podporováno v Linuxu nebo macOS. Integrované ověřování Microsoft Entra vyžaduje stažení ovladače ODBC pro SQL Server verze 17.6.1 nebo vyšší a správně nakonfigurované prostředí Kerberos.

Další informace o ověřování Microsoft Entra naleznete v tématu Ověřování pomocí Microsoft Entra ID v sqlcmd.

-H pracovní_stanice_název

Název pracovní stanice. Tato možnost nastaví sqlcmd skriptovací proměnnou SQLCMDWORKSTATION. Název pracovní stanice se zobrazí ve hostname sloupci sys.sysprocesses zobrazení katalogu a lze ho sp_who vrátit pomocí uložené procedury. Pokud tuto možnost nezadáte, výchozí hodnota je název aktuálního počítače. Tento název použijte k identifikaci různých relací sqlcmd.

-j

Vytiskne nezpracované chybové zprávy na obrazovku.

-J certifikát_serveru

Platí pro: pouze sqlcmd (ODBC), Linux a macOS. Windows se nepodporuje.

Určuje cestu k souboru certifikátu serveru. Tento soubor se shoduje s šifrovacím certifikátem připojení serveru. Porovnání se provádí namísto standardního ověřování certifikátu (jako je vypršení platnosti, název hostitele, důvěryhodnost řetězu atd.). Přijaté formáty certifikátů jsou PEM, DER a CER.

Tuto možnost použijte při připojování k serverům, které používají certifikáty podepsané svým držitelem nebo certifikáty vydané privátní certifikační autoritou. Pokud je povolené šifrování a ověření certifikátu selže, připojení selže.

Například:

sqlcmd -S server01 -Q "SELECT TOP 100 * FROM WideWorldImporters.Sales.Orders" -A -Ns -J /etc/ssl/certs/server_certificate.cer

-K application_intent

Deklaruje typ úlohy aplikace při připojování k serveru. Jediná aktuálně podporovaná hodnota je ReadOnly. Pokud nezadáte -K, sqlcmd nepodporuje připojení k sekundární replice ve skupině dostupnosti. Další informace najdete v tématu Přenesení úlohy pouze pro čtení na sekundární replikát skupiny dostupnosti Always On.

Note

-K V SUSE Linux Enterprise Serveru (SLES) se nepodporuje. Můžete však zadat klíčové slovo ApplicationIntent=ReadOnly v souboru DSN, který je předán sqlcmd. Další informace naleznete v tématu Podpora dsN v sqlcmd a bcp dále v tomto článku.

Další informace najdete v tématu Vysoká dostupnost a zotavení po havárii v Linuxu a macOS.

-M multisubnet_failover

Při připojování k posluchači skupiny dostupnosti SQL Serveru nebo instanci clusteru SQL Serveru s podporou převzetí služeb při selhání vždy zadejte -M. -M poskytuje rychlejší detekci a připojení k (aktuálně) aktivnímu serveru. Pokud nezadáte -M, -M je vypnutý.

Další informace najdete tady:

Note

-M V SUSE Linux Enterprise Serveru (SLES) se nepodporuje. Můžete však zadat klíčové slovo MultiSubnetFailover=Yes v souboru DSN, který je předán sqlcmd. Další informace naleznete v tématu Podpora dsN v sqlcmd a bcp dále v tomto článku.

Další informace najdete v tématu Vysoká dostupnost a zotavení po havárii v Linuxu a macOS.

-N[s|m|o]

Klient tuto možnost používá k vyžádání šifrovaného připojení.

Přepínač -N může být o (pro optional), m (pro mandatory, výchozí) nebo s (pro strict). Pokud nezadáte -N, výchozí hodnota je -Nm (pro mandatory). Toto nastavení představuje změnu kompatibility oproti SQL Serveru 2022 (16.x) a starším verzím, kde výchozí hodnota je -No.

Pro nástroj sqlcmd (Go) přijímá řetězcovou hodnotu, která může být jedním z -N, true, nebo false, a tím zadává volbu šifrování. (default je stejný jako vynechání parametru):

  • Pokud nezadáte -N a -C, sqlcmd vyjedná ověřování se serverem bez ověření certifikátu serveru.

  • Pokud zadáte -N , ale ne -C, sqlcmd vyžaduje ověření certifikátu serveru. Hodnota false pro šifrování by stále mohla vést k šifrování přihlašovacího paketu.

  • Pokud zadáte obojí -N i -C, sqlcmd použije jejich hodnoty pro vyjednávání šifrování.

-P heslo

Heslo zadané uživatelem. V heslech se rozlišují malá a velká písmena. Pokud použijete -U tuto možnost, ale nepoužíváte -P ji nebo nenastavíte SQLCMDPASSWORD proměnnou prostředí, sqlcmd vyzve uživatele k zadání hesla. Nepoužívejte heslo s hodnotou null (prázdné), ale můžete zadat heslo null pomocí dvojice souvislých dvojitých uvozovek pro hodnotu parametru ("").

Important

Použití -P je nezabezpečené. Nepoužívejte heslo na příkazovém řádku. Případně můžete použít proměnnou prostředí SQLCMDPASSWORD nebo interaktivně zadat heslo tak, že vynecháte možnost -P.

Použijte silné heslo.

Výzva k zadání hesla se zobrazí tiskem výzvy k zadání hesla do konzoly následujícím způsobem: Password:

Uživatelský vstup je skrytý. To znamená, že se nic nezobrazí a kurzor zůstane na pozici.

Proměnná prostředí SQLCMDPASSWORD vám umožňuje nastavit výchozí heslo pro aktuální relaci. Hesla proto nemusí být pevně zakódovaná do dávkových souborů. Následující příklad nejprve nastaví proměnnou SQLCMDPASSWORD na příkazovém řádku a pak přistupuje k nástroji sqlcmd.

Na příkazovém řádku zadejte následující příkaz. Nahraďte <password> platným heslem.

SET SQLCMDPASSWORD=<password>
sqlcmd
SET SQLCMDPASSWORD=<password>
sqlcmd
SET SQLCMDPASSWORD=<password>
sqlcmd

Pokud je kombinace uživatelského jména a hesla nesprávná, vygeneruje se chybová zpráva.

Note

Proměnná OSQLPASSWORD prostředí se uchovává kvůli zpětné kompatibilitě. Proměnná prostředí SQLCMDPASSWORD má přednost před proměnnou prostředí OSQLPASSWORD. To znamená, že sqlcmd a osql lze použít vedle sebe bez zásahu. Staré skripty budou dál fungovat.

Pokud tuto možnost použijete -P s -E možností, vygeneruje se chybová zpráva.

Pokud použijete -P možnost s více než jedním argumentem, vygeneruje se chybová zpráva a program se ukončí.

Heslo obsahující speciální znaky může vygenerovat chybovou zprávu. Při použití -Pbyste měli escapeovat speciální znaky, nebo místo toho použít proměnnou prostředí SQLCMDPASSWORD.

Při použití s možností -G bez -U na Linuxu a macOS -P určuje soubor, který obsahuje přístupový token (v17.8+). Soubor tokenu by měl být ve formátu UTF-16LE (bez BOM).

Přístupové tokeny lze získat různými metodami. Musíte zajistit, aby přístupový token byl správný bajt pro bajt, protože se odesílá as-is. Následující ukázkový příkaz získá přístupový token. Tento příkaz používá příkazy Azure CLI a Linuxu a uloží ho do souboru ve správném formátu. Pokud výchozí kódování vašeho systému nebo terminálu není ASCII nebo UTF-8, možná budete muset upravit iconv možnosti. Ujistěte se, že výsledný soubor pečlivě zabezpečíte a odstraníte ho, když už ho nepotřebujete.

az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > /tmp/tokenFile

-S [protokol:]server[\instance_name][,port]

Určuje instanci SQL Serveru, ke které se má připojit. Tato možnost nastaví sqlcmd skriptovací proměnnou SQLCMDSERVER.

Zadejte server_name pro připojení k výchozí instanci SYSTÉMU SQL Server na tomto počítači serveru. Zadejte server_name[\instance_name] pro připojení k pojmenované instanci SQL Serveru na tomto počítači serveru. Pokud nezadáte serverový počítač, sqlcmd se připojí k výchozí instanci SQL Serveru na místním počítači. Tato možnost se vyžaduje, když spustíte sqlcmd ze vzdáleného počítače v síti.

protokol může být tcp (TCP/IP), lpc (sdílená paměť) nebo np (pojmenované kanály).

Pokud při spuštění sqlcmd nezadáte server_name[\instance_name], SQL Server vyhledá a použije proměnnou prostředí SQLCMDSERVER.

Note

Proměnná OSQLSERVER prostředí se uchovává kvůli zpětné kompatibilitě. Proměnná prostředí SQLCMDSERVER má přednost před proměnnou prostředí OSQLSERVER. To znamená, že sqlcmd a osql lze použít vedle sebe bez zásahu. Staré skripty budou dál fungovat.

Ovladač ODBC v Linuxu a macOS vyžaduje -S. Jediná platná hodnota protokolu je tcp.

-U login_id

Přihlašovací jméno nebo uživatelské jméno databáze. Pro uživatele databáze s omezením musíte zadat možnost názvu databáze (-d).

Note

Proměnná OSQLUSER prostředí se uchovává kvůli zpětné kompatibilitě. Proměnná prostředí SQLCMDUSER má přednost před proměnnou prostředí OSQLUSER. To znamená, že sqlcmd a osql lze použít vedle sebe bez zásahu. Staré skripty budou dál fungovat.

Pokud nezadáte možnost -U nebo možnost -P, sqlcmd se pokusí připojit pomocí režimu ověřování systému Windows. Ověřování je založeno na účtu systému Windows uživatele, který používá sqlcmd.

Pokud použijete -U možnost s -E možností (popsanou dále v tomto článku), vygeneruje se chybová zpráva. Pokud za možností -U následuje více než jeden argument, vygeneruje se chybová zpráva a program se ukončí.

-z new_password

Změňte heslo. Nahraďte <oldpassword> starým heslem a <newpassword> novým heslem.

sqlcmd -U someuser -P <oldpassword> -z <newpassword>
sqlcmd -U someuser -P <oldpassword> -z <newpassword>
sqlcmd -U someuser -P <oldpassword> -z <newpassword>

-Z new_password

Změňte heslo a odhlaste se. Nahraďte <oldpassword> starým heslem a <newpassword> novým heslem.

sqlcmd -U someuser -P <oldpassword> -Z <newpassword>
sqlcmd -U someuser -P <oldpassword> -Z <newpassword>
sqlcmd -U someuser -P <oldpassword> -Z <newpassword>

Možnosti vstupu a výstupu

-f znaková stránka | i:znaková stránka[,o:znaková stránka] | o:znaková stránka[,i:znaková stránka]

Určuje vstupní a výstupní znakové stránky. Číslo znakové stránky je číselná hodnota, která určuje nainstalovanou znakovou stránku systému Windows.

Pravidla převodu kódových stránek:

  • Pokud nezadáte znakovou stránku, sqlcmd použije aktuální znakovou stránku pro vstupní i výstupní soubory, pokud vstupní soubor není soubor Unicode, v takovém případě se nevyžaduje žádný převod.

  • sqlcmd automaticky rozpozná vstupní soubory s kódováním "big-endian" i "little-endian" Unicode. Pokud zadáte možnost -u, bude výstup vždy ve formátu little-endian Unicode.

  • Pokud nezadáte výstupní soubor, stránka s kódem výstupu je stránka kódu konzoly. Tento přístup umožňuje správné zobrazení výstupu v konzole.

  • Předpokládá se, že více vstupních souborů používá stejnou znakovou sadu. Vstupní soubory Unicode a jiné než Unicode lze kombinovat.

Zadáním chcp na příkazovém řádku ověřte znakovou stránku cmd.exe.

Note

Číslo znakové stránky v Linuxu je číselná hodnota, která určuje nainstalovanou znakovou stránku Linuxu (k dispozici od verze 17.5.1.1).

-i input_file[,input_file2...]

Identifikuje soubor, který obsahuje dávku příkazů Transact-SQL nebo uložených procedur. Můžete zadat více souborů, které sqlcmd čte a zpracovává v daném pořadí. Nepoužívejte mezery mezi názvy souborů. Sqlcmd nejprve zkontroluje, zda existují všechny zadané soubory. Pokud jeden nebo více souborů neexistuje, sqlcmd ukončí. Možnost -i a možnosti -Q/-q se vzájemně vylučují.

Note

Pokud použijete -i možnost následovanou jedním nebo více dalšími parametry, musíte použít mezeru mezi parametrem a hodnotou. Tento požadavek je známým problémem v sqlcmd (Go).

Příklady cest:

-i C:\<filename>
-i \\<Server>\<Share$>\<filename>
-i "C:\Some Folder\<file name>"

Cesty k souborům, které obsahují mezery, musí být uzavřeny v uvozovkách.

Tuto možnost můžete použít více než jednou:

sqlcmd -i <input_file1> -i <input_file2>
sqlcmd -i <input_file1> -i <input_file2>
sqlcmd -i <input_file1> -i <input_file2>

-o výstupní_soubor

Identifikuje soubor, který přijímá výstup z sqlcmd.

Pokud zadáte -u, sqlcmd uloží output_file ve formátu Unicode. Pokud název souboru není platný, sqlcmd vygeneruje chybovou zprávu a ukončí se. sqlcmd nepodporuje souběžné zápisy více procesů sqlcmd do stejného souboru. Pokud k tomu dojde, zvažte poškozený nebo nesprávný výstup souboru. Možnost -f je také relevantní pro formáty souborů. Sqlcmd vytvoří tento soubor, pokud neexistuje. Sqlcmd přepíše soubor se stejným názvem z předchozí relace. Zadaný soubor není souborem stdout. Pokud zadáte stdout soubor, sqlcmd tento soubor nepoužívá.

Příklady cest:

-o C:< filename>
-o \\<Server>\<Share$>\<filename>
-o "C:\Some Folder\<file name>"

Cesty k souborům, které obsahují mezery, musí být uzavřeny v uvozovkách.

-r[0 | 1]

Přesměruje výstup chybové zprávy na obrazovku (stderr). Pokud nezadáte parametr nebo zadáte 0, přesměrují se pouze chybové zprávy, které mají úroveň závažnosti 11 nebo vyšší. Pokud zadáte 1, přesměrují se všechny chybové výstupy, včetně PRINT. Tato možnost nemá žádný vliv, pokud používáte -o. Ve výchozím nastavení se zprávy odesílají do stdout.

Note

Pro nástroj sqlcmd (Go) -r vyžaduje argument 0 nebo 1.

-R

Platí pouze pro: pouze sqlcmd (ODBC).

Způsobí, že sqlcmd lokalizuje číselné sloupce, měny, data a času načtené z SQL Serveru, na základě národního prostředí klienta. Ve výchozím nastavení se tyto sloupce zobrazují pomocí místního nastavení serveru.

Note

Na Linuxu a macOS -R aktuálně používá formátování pouze pro angličtinu (USA) en_US.

-u

Určuje, že output_file je uložen ve formátu Unicode bez ohledu na formát input_file.

Note

Pro nástroj sqlcmd (Go) je vygenerovaný výstupní soubor Unicode s předponou znaků bajtového řádu UTF-16 little-endian (BOM).

Možnosti spouštění dotazů

-e

Zapíše vstupní skripty do standardního výstupního zařízení (stdout).

-I

Platí pouze pro: pouze sqlcmd (ODBC).

Nastaví možnost připojení SET QUOTED_IDENTIFIER na ON. Výchozí nastavení je OFF. Další informace naleznete v tématu SET QUOTED_IDENTIFIER.

Note

Pokud chcete zakázat chování uvozených identifikátorů v nástroji sqlcmd (Go), přidejte do svých skriptů SET QUOTED IDENTIFIER OFF.

-q "dotaz na příkazový řádek"

Spustí dotaz při spuštění sqlcmd, ale po dokončení dotazu sqlcmd neukončí. Můžete spustit více dotazů oddělených středníkem. Kolem dotazu použijte uvozovky, jak je znázorněno v následujícím příkladu.

Do příkazového řádku zadejte:

sqlcmd -d AdventureWorks2025 -q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2025 -q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"
sqlcmd -d AdventureWorks2025 -q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2025 -q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"
sqlcmd -d AdventureWorks2025 -q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2025 -q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"

Important

Nepoužívejte v dotazu ukončovač GO.

Pokud zadáte -b společně s touto možností, sqlcmd se ukončí s chybou. Možnost -b je popsaná jinde v tomto článku.

-Q "dotazu na příkazovém řádku"

Spustí dotaz při spuštění sqlcmd a okamžitě ukončí sqlcmd. Můžete spustit více dotazů oddělených středníkem.

Kolem dotazu použijte uvozovky, jak je znázorněno v následujícím příkladu.

Do příkazového řádku zadejte:

sqlcmd -d AdventureWorks2025 -Q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2025 -Q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"
sqlcmd -d AdventureWorks2025 -Q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2025 -Q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"
sqlcmd -d AdventureWorks2025 -Q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2025 -Q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"

Important

Nepoužívejte v dotazu ukončovač GO.

Pokud zadáte -b společně s touto možností, sqlcmd se ukončí s chybou. Možnost -b je popsaná jinde v tomto článku.

-t query_timeout

Určuje počet sekund před časovým limitem příkazu (nebo příkazu Transact-SQL). Tato možnost nastaví sqlcmd skriptovací proměnnou SQLCMDSTATTIMEOUT. Pokud nezadáte hodnotu query_timeout, příkaz nevyprší časový limit. query_timeout musí být číslo mezi 1 a 65534. Pokud zadáte hodnotu, která není číslo nebo nespadá do tohoto rozsahu, sqlcmd vygeneruje chybu.

Note

Skutečná hodnota časového limitu se může lišit od zadané query_timeout hodnoty o několik sekund.

-v var = hodnota [ var = hodnota... ]

Platí jenom pro: Windows. Linux a macOS se nepodporují.

Vytvoří proměnnou skriptování sqlcmd pro použití ve skriptu sqlcmd .

Pokud hodnota obsahuje mezery, uzavřete ji do uvozovek. Můžete zadat více <var>="<value>" hodnot. Pokud některé ze zadaných hodnot obsahují chyby, sqlcmd vygeneruje chybovou zprávu a ukončí se.

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

-x

Způsobí, že sqlcmd ignoruje skriptovací proměnné. Tento parametr je užitečný, pokud skript obsahuje mnoho příkazů INSERT, které mohou obsahovat řetězce se stejným formátem jako běžné proměnné, například $(<variable_name>).

Možnosti formátu

-h headers

Určuje počet řádků, které se mají vytisknout mezi záhlavími sloupců. Výchozí nastavení vytiskne nadpisy jednou pro každou sadu výsledků dotazu. Tato možnost nastaví sqlcmd skriptovací proměnnou SQLCMDHEADERS. Slouží -1 k určení, že se záhlaví nevytisknou. Neplatná hodnota způsobí, že sqlcmd vygeneruje chybovou zprávu a pak ukončí.

-k [1 | 2]

Odebere z výstupu všechny řídicí znaky, například tabulátory a znaky nového řádku. Tento parametr zachová formátování sloupců při vrácení dat.

  • -k odstraní řídicí znaky.
  • -k1 nahradí každý řídicí znak mezerou.
  • -k2 nahradí po sobě jdoucí řídicí znaky jednou mezerou.

-s oddelovač_sloupců

Určuje znak oddělovače sloupců. Výchozí hodnota je prázdné místo. Tato možnost nastaví sqlcmd skriptovací proměnnou SQLCMDCOLSEP. Chcete-li použít znaky, které mají zvláštní význam pro operační systém, například ampersand (&) nebo středník (;), uzavře znak do uvozovek ("). Oddělovač sloupců může být libovolný 8bitový znak.

-w screen_width

Určuje šířku obrazovky pro výstup. Tato možnost nastaví sqlcmd skriptovací proměnnou SQLCMDCOLWIDTH. Šířka sloupce musí být číslo větší než 8 a menší než 65536. Pokud zadaná šířka sloupce nepřejde do této oblasti, sqlcmd vygeneruje chybovou zprávu. Výchozí šířka je 80 znaků. Pokud výstupní řádek překročí zadanou šířku sloupce, zalomí se na další řádek.

-W

Odebere koncové mezery ze sloupce. Tuto možnost použijte společně s -s možností při přípravě dat, která chcete exportovat do jiné aplikace. Nelze použít s možnostmi -y nebo -Y.

-y variable_length_type_display_width

Nastaví skriptovací proměnnou sqlcmdSQLCMDMAXVARTYPEWIDTH. Výchozí hodnota je 256. Omezuje počet znaků vrácených pro datové typy s velkou délkou:

  • varchar(max)
  • nvarchar(max)
  • varbinary(max)
  • xml
  • uživatelsky definované datové typy (UDT)
  • text
  • ntext
  • image

UDT můžou mít pevnou délku v závislosti na implementaci. Pokud je délka tohoto UDT s pevnou délkou kratší než display_width, nebude hodnota vráceného UDT ovlivněna. Pokud je však délka delší než display_width, výstup se zkrátí.

Caution

-y 0 Tuto možnost používejte s extrémní opatrností, protože může způsobit významné problémy s výkonem na serveru i v síti v závislosti na velikosti vrácených dat.

-Y šířka_zobrazení_typu_pevné_délky

Nastaví skriptovací proměnnou sqlcmdSQLCMDMAXFIXEDTYPEWIDTH. Výchozí hodnota je 0 (neomezená). Omezuje počet znaků vrácených pro následující datové typy:

  • char(n), kde 1 <= n<= 8000
  • nchar(n), kde 1 <= n<= 4000
  • varchar(n), kde 1 <= n<= 8000
  • nvarchar(n), kde 1 <= n<= 4000
  • varbinary(n), kde 1 <= n<= 4000
  • sql_variant

Možnosti zasílání zpráv o chybách

-b

Určuje, že sqlcmd ukončí a vrátí DOS ERRORLEVEL hodnotu, když dojde k chybě. Hodnota, kterou sqlcmd vrátí do ERRORLEVEL proměnné, je 1 , když chybová zpráva SQL Serveru má úroveň závažnosti větší než 10. V opačném případě je vrácena hodnota 0. Pokud nastavíte možnost -V, kromě možnosti -b, sqlcmd nenahlásí chybu, pokud je úroveň závažnosti nižší než hodnoty nastavené možností -V. Dávkové soubory příkazového řádku mohou otestovat hodnotu ERRORLEVEL a správně zpracovat chybu. sqlcmd nehlásí chyby pro úroveň závažnosti 10 (informační zprávy).

Pokud skript sqlcmd obsahuje nesprávný komentář, chybu syntaxe nebo chybí skriptovací proměnná, vrátí se ERRORLEVEL1.

-m úroveň_chyby

Určuje, které chybové zprávy se odesílají do stdout. Sqlcmd odesílá zprávy, které mají úroveň závažnosti větší nebo rovna této úrovni. Když tuto hodnotu nastavíte na -1, sqlcmd odešle všechny zprávy, včetně informačních zpráv. Nezahrnujte mezery mezi -m a -1. Například -m-1 je platný a -m -1 není.

Tato možnost také nastaví sqlcmd skriptovací proměnnou SQLCMDERRORLEVEL. Tato proměnná má výchozí hodnotu 0.

-V úroveň_závažnosti_chyby

Řídí úroveň závažnosti, kterou sqlcmd používá k nastavení ERRORLEVEL proměnné. Chybové zprávy, které mají úrovně závažnosti větší nebo rovny této sadě hodnot ERRORLEVEL. Hodnoty, které jsou menší než 0, jsou hlášeny jako 0. K otestování hodnoty ERRORLEVEL proměnné můžete použít dávkové soubory a soubory CMD.

Různé možnosti

- a packet_size

Vyžádá si paket s jinou velikostí. Tato možnost nastaví sqlcmd skriptovací proměnnou SQLCMDPACKETSIZE. packet_size musí být hodnota mezi 512 a 32767. Výchozí hodnota je 4096. Větší velikost paketů může zvýšit výkon spouštění skriptů, které mají mnoho příkazů Transact-SQL mezi GO příkazy. Můžete požádat o větší velikost paketu. Pokud je však požadavek odepřen, sqlcmd použije výchozí nastavení serveru pro velikost paketu.

-c batch_terminator

Určuje terminátor dávky. Ve výchozím nastavení musíte příkazy ukončit a odeslat je na SQL Server tak, že na samostatném řádku napíšete slovo GO, poté stisknete klávesu Enter. Při resetování dávkového ukončování nepoužívejte Transact-SQL rezervovaná klíčová slova ani znaky, které mají pro operační systém zvláštní význam, i když jim předchází zpětné lomítko.

-L[c]

Platí jenom pro: Windows. Linux a macOS se nepodporují.

Uvádí seznam místně nakonfigurovaných serverových počítačů a názvy serverových počítačů, které jsou v síti vysílané. Tento parametr nelze použít v kombinaci s jinými parametry. Maximální počet serverových počítačů, které lze uvést, je 3 000. Pokud je seznam serverů zkrácen z důvodu velikosti vyrovnávací paměti, zobrazí se zpráva s upozorněním.

Note

Vzhledem k povaze vysílání v sítích nemusí sqlcmd přijímat včasnou odpověď ze všech serverů. Proto se seznam vrácených serverů může pro každé vyvolání této možnosti lišit.

Pokud zadáte volitelný parametr c, zobrazí se výstup bez Servers: řádku záhlaví a každý řádek serveru je uveden bez úvodních mezer. Tato prezentace se označuje jako čistý výstup. Čistý výstup zlepšuje výkon zpracování skriptovacího jazyka.

-p[1]

Vytiskne statistiku výkonu pro každou sadu výsledků. Následující zobrazení je příkladem formátu statistik výkonu:

Network packet size (bytes): n

x xact[s]:

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

Where:

  • x = Počet transakcí zpracovaných SQL Serverem.
  • t1 = celkový čas pro všechny transakce.
  • t2 = Průměrná doba pro jednu transakci.
  • t3 = Průměrný počet transakcí za sekundu.

Všechny časy jsou v milisekundách.

Pokud zadáte volitelný parametr 1, výstupní formát statistiky je ve formátu odděleném dvojtečkami, který lze snadno importovat do tabulky nebo zpracovat skriptem.

Pokud volitelný parametr zadáte jako jakoukoli hodnotu, která není 1, vygeneruje se chyba a sqlcmd se ukončí.

-X[1]

Zakáže příkazy, které můžou ohrozit zabezpečení systému při spuštění sqlcmd z dávkového souboru. Zakázané příkazy jsou stále rozpoznány; sqlcmd zobrazí upozornění a pokračuje. Pokud zadáte volitelný parametr 1, sqlcmd vygeneruje chybovou zprávu a pak se ukončí. Při použití možnosti -X jsou zakázány následující příkazy:

  • ED
  • !! příkaz

Pokud zadáte možnost -X, zabrání se předání proměnných prostředí do sqlcmd. Také zabraňuje spuštění startovacího skriptu určeného pomocí skriptovací proměnné SQLCMDINI. Další informace o sqlcmd skriptovací proměnné naleznete v tématu sqlcmd – použití se skriptovacími proměnnými.

-?

Zobrazí verzi sqlcmd a souhrn syntaxe možností sqlcmd.

Note

V systému macOS místo toho spusťte sqlcmd '-?' (s uvozovkami).

Remarks

V pořadí uvedeném v oddílu syntaxe nemusíte používat možnosti.

Note

Pokud použijete -i možnost následovanou jedním nebo více dalšími parametry, musíte použít mezeru mezi parametrem a hodnotou. Tento požadavek je známým problémem v sqlcmd (Go).

Sqlcmd vytiskne prázdný řádek mezi více sadami výsledků v dávce. Kromě toho se <x> rows affected zpráva nezobrazí, pokud se nevztahuje na spuštěný příkaz.

Pokud chcete sqlcmd interaktivně použít, zadejte sqlcmd na příkazovém řádku s některou z možností popsaných výše v tomto článku. Další informace naleznete v tématu Použití sqlcmd.

Note

Možnosti -l, -Q, -Z nebo -i způsobují, že sqlcmd se ukončí po spuštění.

Základní operační systém určuje celkovou délku příkazového řádku sqlcmd v příkazovém prostředí (například cmd.exe nebo bash), včetně všech argumentů a rozšířených proměnných.

Podpora DSN v sqlcmd a bcp

Název zdroje dat (DSN) můžete místo názvu serveru zadat v sqlcmd nebo bcp -S možnost (nebo sqlcmd :Connect příkaz), pokud zadáte -D. Pokud použijete -D tuto možnost, sqlcmd a bcp se připojují k serveru zadanému v dsN pomocí možnosti -S .

Systémové dsN jsou uloženy v odbc.ini souboru v adresáři ODBC SysConfigDir (/etc/odbc.ini ve standardních instalacích). DsN uživatele jsou uloženy v .odbc.ini domovském adresáři uživatele (~/.odbc.ini).

V systémech Windows jsou systémové a uživatelské DSN uloženy v registru a spravovány prostřednictvím odbcad32.exe. Bcp a sqlcmd nepodporují názvy DSN souborů.

Seznam položek, které ovladač podporuje, naleznete v tématu DSN a připojovací řetězec klíčová slova a atributy.

V DSN je vyžadována pouze DRIVER položka. Pokud se chcete připojit ke vzdálenému serveru, sqlcmd nebo bcp potřebuje hodnotu v elementu SERVER . SERVER Pokud je prvek prázdný nebo není v DSN, sqlcmd nebo bcp se pokusí připojit k výchozí instanci v místním systému.

Při použití nástroje bcp v systémech Windows vyžadují SQL Server 2017 (14.x) a starší verze ovladač SQL Native Client 11 (sqlncli11.dll), zatímco SQL Server 2019 (15.x) a novější verze vyžadují ovladač Microsoft ODBC 17 pro ovladač SQL Serveru (msodbcsql17.dll).

Pokud zadáte stejnou možnost jak v dsN, tak v příkazovém řádku sqlcmd nebo bcp , přepíše možnost příkazového řádku hodnotu použitou v dsN. Pokud má například DSN DATABASE položku a parametr příkazového řádku sqlcmd obsahuje -d, použije se hodnota předaná do -d. Pokud zadáte Trusted_Connection=yes v dsN, použije se ověřování kerberos, uživatelské jméno (-U) a heslo (-P), pokud je zadáno, budou ignorovány.

Existující skripty, které volají isql , můžete upravit tak, aby používaly sqlcmd, definováním následujícího aliasu: alias isql="sqlcmd -D".

Osvědčené postupy pro sqlcmd

Pomocí následujících postupů můžete maximalizovat zabezpečení a efektivitu:

  • Používejte integrované zabezpečení.

  • Používejte -X[1] v automatizovaných prostředích.

  • Zabezpečte vstupní a výstupní soubory pomocí odpovídajících oprávnění systému souborů.

  • Pokud chcete zvýšit výkon, provádějte co nejvíce v jedné relaci sqlcmd místo použití řady relací.

  • Nastavte hodnoty časového limitu pro dávkové spuštění nebo spouštění dotazů vyšší než očekávaný čas spuštění dávky nebo dotazu.

Při maximalizaci správnosti vám pomůžou následující postupy:

  • Pomocí -V 16 můžete protokolovat všechny zprávy závažnosti 16. Zprávy závažnosti 16 označují obecné chyby, které můžete opravit.

  • Po ukončení procesu zkontrolujte ukončovací kód a DOS ERRORLEVEL proměnnou. sqlcmd vrací 0 normálně. V opačném případě nastaví ERRORLEVEL podle konfigurace -V. Jinými slovy, neočekávejte ERRORLEVEL , že bude stejná hodnota jako číslo chyby hlášené z SQL Serveru. Číslo chyby je hodnota specifická pro SQL Server odpovídající systémové funkci @@ERROR. ERRORLEVEL je hodnota specifická pro sqlcmd, která označuje, proč byl sqlcmd ukončen. Jeho hodnota je ovlivněna zadáním parametru -b .

Použití -V 16 v kombinaci s kontrolou ukončovacího kódu a DOS ERRORLEVEL může pomoct zachytit chyby v automatizovaných prostředích, zejména brány kvality před produkčním vydáním.