Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitikai Platform System (PDW)
SQL adatbázis a Microsoft Fabric-ben
Az sqlcmd segédprogrammal különböző módokon adhat meg Transact-SQL utasításokat, rendszereljárásokat és szkriptfájlokat:
- A parancssorban.
- LekérdezésszerkesztőbenSQLCMD módban.
- Windows-szkriptfájlban.
- Egy SQL Server Agent-feladat operációs rendszerbeli (
cmd.exe) feladatlépésében.
Note
Bár a Microsoft Entra ID az Azure Active Directory (Azure AD) új neve, a meglévő környezetek megzavarásának megakadályozása érdekében az Azure AD továbbra is megmarad néhány rögzített elemben, például felhasználói felületi mezőkben, kapcsolatszolgáltatókban, hibakódokban és parancsmagokban. Ebben a cikkben a két név felcserélhető.
sqlcmd-variánsok
Az sqlcmd két változata létezik:
sqlcmd (Go): A
go-mssqldb-alapú sqlcmd, néha go-sqlcmd néven. Ez a verzió egy önálló eszköz, amelyet az SQL Servertől függetlenül tölthet le. Windowson, macOS-en, Linuxon és tárolókban fut.sqlcmd (ODBC): A platformhoz igazított, ODBC-alapú sqlcmd, amely az SQL Serverrel vagy a Microsoft parancssori segédprogramokkal érhető el, és a
mssql-toolscsomag egy része Linuxon. Windowson, macOS-en, Linuxon és tárolókban is fut.
Ha meg szeretné tudni, hogy az sqlcmd melyik változata és verziója van telepítve a rendszeren, tekintse meg az sqlcmd segédprogram telepített verziójának ellenőrzését.
Az sqlcmd beszerzéséről további információt az sqlcmd segédprogram letöltése és telepítése című témakörben talál.
TDS 8.0-támogatás
Az SQL Server 2025 (17.x) TDS 8.0-s támogatást nyújt az sqlcmd segédprogramhoz.
Syntax
Ebben a cikkben az opció, a paraméter, a parancssori argumentum és a kapcsoló felcserélhető.
Az sqlcmd (Go) két súgómóddal rendelkezik: --help modern alparancsokhoz és -? ODBC-kompatibilis jelzőkhöz.
Modern parancsok (--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.
ODBC-kompatibilis jelzők (-?)
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)
Az sqlcmd (ODBC) jelentős változásai
Az sqlcmd (Go) segédprogramban számos kapcsoló és viselkedés eltérő. A legfrissebb hiányzó zászlók listájához a visszamenőleges kompatibilitás érdekében lásd a Vissza-kompatibilitási zászlók megvalósításának prioritása GitHub-beszélgetést.
Az sqlcmd (Go) támogatja a kapcsolót
-P. Az SQL Server-hitelesítéshez az alábbi mechanizmusokon keresztül adhat meg jelszavakat:- A
-Pparancssori kapcsoló - A
SQLCMDPASSWORDkörnyezeti változó - A
:CONNECTparancs - Amikor a rendszer kéri, írja be a jelszót a kapcsolat befejezéséhez
- A
A
-rkapcsolóhoz szükség van egy0vagy1argumentumra.A
-Rkapcsoló figyelmen kívül lesz hagyva. A Go-futtatókörnyezet nem biztosít hozzáférést a felhasználói területi adatokhoz.A
-Ikapcsoló figyelmen kívül lesz hagyva. Az idézett azonosítók mindig engedélyezve vannak. Az idézett azonosító viselkedésének letiltásához adjon hozzáSET QUOTED IDENTIFIER OFF-et a szkriptekhez.A
-Mkapcsoló figyelmen kívül lesz hagyva. Az sqlcmd (Go) mindig engedélyezi a több alhálózatos feladatátvételt.A
-Nkarakterlánc értéke adja meg a titkosítási választást, amely azs[trict]egyik ,t[rue]/m[andatory]/yes/1o[ptional]/no/0/f[alse]vagy .disable- Ha nem adja meg
-Nés-C, az sqlcmd a kiszolgálóval való hitelesítést a tanúsítvány érvényesítése nélkül egyezteti. - Ha megadja
-N, de nem-C, az sqlcmd megköveteli a kiszolgálótanúsítvány érvényesítését. A titkosításfalseértéke továbbra is a bejelentkezési csomag titkosításához vezethet. - Ha mind a
-N-t, mind a-C-et megadja, az sqlcmd az értékeiket használja a titkosítási egyeztetéshez. - Az ügyfél-/kiszolgálótitkosítási egyeztetésről további információt MS-TDS PRELOGIN című témakörben talál.
Important
Az SQL Server 2025 (17.x) esetében a
-Nleheto(aoptionalesetén),m(az alapértelmezettmandatoryesetén) vagys(astrictesetén). Ha nem adja meg-N, akkor-Nmlesz az alapértelmezett (amandatoryesetében). Ez a viselkedés az SQL Server 2022 (16.x) és a korábbi verziók közötti kompatibilitástörő változás.- Ha nem adja meg
A
-ukapcsolóval az előállított Unicode kimeneti fájl az UTF-16 kis-endian byte-order markkal (BOM) van előtagolva.Bizonyos viselkedések, amelyekkel a kompatibilitás
OSQLfenntartása érdekében tartottak, módosulhattak, például egyes adattípusok oszlopfejléceinek igazítása.Minden parancsnak el kell férnie egy sorban, még
EXITis. Az interaktív mód nem ellenőrzi a parancsok nyitott zárójeleit vagy idézőjeleit, és nem kéri az egymást követő sorokat. Ez a viselkedés eltér az ODBC-verziótól, ami lehetővé teszi, hogy a lekérdezésEXIT(query)több sorra is kiterjedjen.
Az sqlcmd (Go) támogatja a megosztott memóriát, a nevesített csöveket és a TCP-átvitelt. Protokoll kényszerítéséhez használja a kiszolgáló nevének megfelelő protokollelőtagot:
-
lpcmegosztott memória esetén (csak localhost) -
npnevesített csövek esetén, vagy használja az UNC névvel ellátott cső elérési útját kiszolgálónévként -
tcpTCP esetén
Ha nem ad meg protokollt, az sqlcmd a következő sorrendben próbál tárcsázni: lpc>np>tcp. Távoli gazdagéphez lpc való csatlakozáskor az ki van hagyva.
Enhancements
:Connectválasztható-Gparamétert használ az Azure SQL Database egyik hitelesítési módszerének kiválasztásához :SqlAuthentication,ActiveDirectoryDefault,ActiveDirectoryIntegrated,ActiveDirectoryServicePrincipal,ActiveDirectoryManagedIdentityActiveDirectoryPassword. További információ: Hitelesítés a Microsoft Entra-azonosítóval az sqlcmd-ben. Ha-Gnincs megadva, a rendszer integrált biztonságot vagy SQL Server-hitelesítést használ egy-Ufelhasználóneves paraméter meglététől függően.A
--driver-logging-levelparancssori paraméter lehetővé teszi a nyomkövetések megtekintését azgo-mssqldbillesztőprogramból. A64használatával tekintse meg az összes nyomot.Az sqlcmd (Go) függőleges formátumban tudja kinyomtatni az eredményeket. Állítsa be a
--verticalparancssori kapcsolót. ASQLCMDFORMATszkriptelési változó is szabályozza azt.
Parancssori opciók
Az alábbi táblázat az sqlcmdben elérhető parancssori beállításokat és az általuk támogatott operációs rendszereket sorolja fel.
Bejelentkezéssel kapcsolatos beállítások
-A
Csak a Windowsra vonatkozik. A Linux és a macOS nem támogatott.
Dedikált rendszergazdai kapcsolattal (DAC) jelentkezik be az SQL Serverre. Az ilyen típusú kapcsolatokkal elháríthatóak a kiszolgáló hibái. Ez a kapcsolat csak a DAC-t támogató kiszolgálószámítógépekkel működik. Ha a DAC nem érhető el, sqlcmd hibaüzenetet generál, majd kilép. További információ a DAC-ról: Diagnosztikai kapcsolat adatbázis-rendszergazdák számára. A -A beállítás nem támogatott a -G beállítással. Amikor az Azure SQL Database-hez csatlakozik -A használatával, adminisztrátornak kell lennie a logikai SQL kiszolgálón. A DAC nem érhető el a Microsoft Entra rendszergazdái számára.
Note
A dedikált rendszergazdai kapcsolat (DAC) macOS vagy Linux rendszeren történő létrehozásának módjáról a programozási útmutatóban olvashat.
-C
Ezzel a beállítással úgy konfigurálhatja az ügyfelet, hogy a kiszolgáló tanúsítványában ellenőrzés nélkül implicit módon megbízzon. Ez a beállítás egyenértékű a ADO.NET TRUSTSERVERCERTIFICATE = truebeállítással.
Az sqlcmd (Go) segédprogramra a következő feltételek vonatkoznak:
- Ha nem adja meg
-N, és-C, az sqlcmd a kiszolgálótanúsítvány érvényesítése nélkül tárgyalja meg a hitelesítést a kiszolgálóval. - Ha megadja
-N, de nem-C, az sqlcmd megköveteli a kiszolgálótanúsítvány érvényesítését. A titkosításfalseértéke továbbra is a bejelentkezési csomag titkosításához vezethet. - Ha mind a
-N, mind az-Cparamétert megadja, az sqlcmd a titkosítási egyeztetéshez használja az értékeiket.
-d db_name
Az sqlcmd USE <db_name>indításakor egy utasítást ad ki. Ez a beállítás beállítja a sqlcmd szkriptelési változót SQLCMDDBNAME. Ez a paraméter a kezdeti adatbázist adja meg. Az alapértelmezett a bejelentkezéshez tartozó alapértelmezett adatbázis tulajdonsága. Ha az adatbázis nem létezik, hibaüzenet jelenik meg, és sqlcmd kilép.
-D
A -S számára megadott kiszolgálónevet gazdanév helyett DSN-ként értelmezi. További információ: DSN-támogatás az sqlcmd és a bcp esetében.
Note
A -D lehetőség csak Linux és macOS rendszerű ügyfeleken érhető el. Windows klienseken egy elavult opcióra hivatkozik, amely eltávolításra került, és így figyelmen kívül hagyásra kerül.
-l bejelentkezési_időkorlát
Megadja, hogy hány másodperc telik el, mielőtt időtúllépés történik az sqlcmd ODBC-illesztőhöz való bejelentkezéskor, amikor megpróbál csatlakozni egy kiszolgálóhoz. Ez a beállítás beállítja a sqlcmd szkriptelési változót SQLCMDLOGINTIMEOUT. Az alapértelmezett időtúllépés az sqlcmd bejelentkezésnél 8 másodperc. Ha az Azure SQL Database-hez vagy az -G Azure Synapse Analyticshez való csatlakozást és a Microsoft Entra-azonosítóval való hitelesítést választja, legalább 30 másodperces időtúllépési érték ajánlott. A bejelentkezési időtúllépésnek egy 0 és 65534 közötti számnak kell lennie. Ha az érték nem numerikus, vagy nem ebbe a tartományba esik, az sqlcmd hibaüzenetet hoz létre. A 0 értéke azt határozza meg, hogy az időtúllépés végtelen legyen.
-E
Megbízható kapcsolatot használ a felhasználónév és jelszó használata helyett az SQL Serverre való bejelentkezéshez. Alapértelmezés szerint -E megadása nélkül sqlcmd a megbízható kapcsolati lehetőséget használja.
A -E beállítás figyelmen kívül hagyja a felhasználónév és a jelszó környezeti változójának lehetséges beállításait, például a SQLCMDPASSWORD. Ha a -E beállítást a -U vagy a -P beállítással együtt használja, hibaüzenet jelenik meg.
Note
Az integrált hitelesítést linuxos vagy macOS-ügyfélről használó megbízható kapcsolatok létesítéséről további információt az Integrált hitelesítés használata című témakörben talál.
-F hostname_in_certificate
Egy másik, várt köznapi nevet (CN) vagy tulajdonosi alternatív nevet (SAN) ad meg a kiszolgálótanúsítványban, amelyet a kiszolgálótanúsítvány érvényesítése során használni szeretne. E beállítás nélkül a tanúsítvány érvényesítése biztosítja, hogy a tanúsítvány cn vagy SAN értéke megegyezik a kiszolgáló nevével, amelyhez csatlakozik. Ezt a paramétert akkor használhatja, ha a kiszolgáló neve nem felel meg a CN-nek vagy a SAN-nak, például DNS-aliasok használatakor.
Például:
sqlcmd -S server01 -Q "SELECT TOP 100 * FROM WideWorldImporters.Sales.Orders" -A -Ns -F server01.adventure-works.com
Note
Az sqlcmd (Go) a kiszolgálótanúsítványban a gazdagépnevének megadására is használja a -F -t. Ha függőleges formátumban szeretné kinyomtatni az eredményeket, akkor az sqlcmd (Go) a --vertical kapcsolót használja.
-g
Az oszloptitkosítás beállítása Enabled-ra. További információ: Always Encrypted. Csak a Windows tanúsítványtárolóban tárolt főkulcsok támogatottak. A -g beállításhoz legalább sqlcmd13.1-esverzió szükséges. A verzió meghatározásához futtassa a következőt sqlcmd -?: .
-G
Ezzel a beállítással hitelesítheti a Microsoft Entrát az Azure SQL Database-hez vagy az Azure Synapse Analyticshez való csatlakozáskor. Ez a beállítás beállítja a sqlcmd szkriptelési változót SQLCMDUSEAAD = true. A -G beállításhoz legalább sqlcmd13.1-esverzió szükséges. A verzió meghatározásához futtassa a következőt sqlcmd -?: . További információ: Microsoft Entra-hitelesítés az Azure SQL-hez. A -A beállítás nem támogatott a -G beállítással.
A -G lehetőség csak az Azure SQL Database-re és az Azure Synapse Analyticsre vonatkozik.
A Microsoft Entra interaktív hitelesítése jelenleg nem támogatott Linux vagy macOS rendszeren. A Microsoft Entra integrált hitelesítéséhez az SQL Server 17.6.1-es vagy újabb verziójához és egy megfelelően konfigurált Kerberos-környezethezszükséges az ODBC-illesztőprogram letöltése.
A Microsoft Entra-hitelesítéssel kapcsolatos további információkért lásd: Hitelesítés a Microsoft Entra-azonosítóval az sqlcmd-ben.
-H workstation_name
Egy munkaállomás neve. Ez a beállítás beállítja a sqlcmd szkriptelési változót SQLCMDWORKSTATION. A munkaállomás neve megjelenik a hostname katalógusnézet oszlopában sys.sysprocesses , és a sp_who tárolt eljárással adható vissza. Ha nem adja meg ezt a beállítást, az alapértelmezett beállítás az aktuális számítógépnév. Ezzel a névvel azonosíthatja a különböző sqlcmd-munkameneteket .
-j
Nyers hibaüzeneteket jelenít meg a képernyőn.
-J szerver_tanúsítvány
A következőkre vonatkozik: sqlcmd (ODBC), Linux és macOS. A Windows nem támogatott.
Egy kiszolgálótanúsítványfájl elérési útját adja meg. Ez a fájl megfelel a kiszolgáló kapcsolattitkosítási tanúsítványának. Az egyezés a szabványos tanúsítványérvényesítés (lejárat, állomásnév, megbízhatósági lánc stb.) helyett történik. Az elfogadott tanúsítványformátumok a PEM, a DER és a CER.
Ezt a lehetőséget akkor használja, ha olyan kiszolgálókhoz csatlakozik, amelyek önaláírt tanúsítványokat vagy tanúsítványokat használnak, amelyeket egy magántanúsítvány-szolgáltató állít ki. Ha a titkosítás engedélyezve van, és a tanúsítvány érvényesítése meghiúsul, a kapcsolat meghiúsul.
Például:
sqlcmd -S server01 -Q "SELECT TOP 100 * FROM WideWorldImporters.Sales.Orders" -A -Ns -J /etc/ssl/certs/server_certificate.cer
-K alkalmazás_szándék
Deklarálja az alkalmazás számítási feladatainak típusát a kiszolgálóhoz való csatlakozáskor. Az egyetlen jelenleg támogatott érték a ReadOnly. Ha nem adja meg -K, az sqlcmd nem támogatja a másodlagos replikához való kapcsolódást egy rendelkezésre állási csoportban. További információért lásd: Írásvédett számítási feladatok kiszervezése egy Always On rendelkezésre állási csoport másodlagos replikájára.
Note
-K A SUSE Linux Enterprise Server (SLES) nem támogatja. Az ApplicationIntent=ReadOnly átadott DSN-fájlban azonban megadhatja a kulcsszót. További információért lásd a cikk későbbi részében az sqlcmd és a bcp DSN-támogatását.
További információ: Magas rendelkezésre állás és vészhelyreállítás Linux és macOS rendszeren.
-M multisubnet_failover
A -M paramétert mindig adja meg, amikor csatlakozik egy SQL Server rendelkezésre állási csoport figyelőjéhez vagy egy SQL Server feladatátvételi fürt példányához.
-M gyorsabb észlelést és kapcsolatot biztosít az (jelenleg) aktív kiszolgálóval. Ha nem adja meg -M, -M ki van kapcsolva.
További információkért lásd:
- Csatlakozás Always On rendelkezésre állási csoport figyelőhöz
- Always On rendelkezésre állási csoportok létrehozásának és konfigurálásának referenciája
- Feladatátvételi fürtszolgáltatás és Always On rendelkezésre állási csoportok (SQL Server)
- Írásvédett számítási feladat áthelyezése egy Always On rendelkezésre állási csoport másodlagos replikájába
Note
-M A SUSE Linux Enterprise Server (SLES) nem támogatja. Az MultiSubnetFailover=Yes átadott DSN-fájlban azonban megadhatja a kulcsszót. További információért lásd a cikk későbbi részében az sqlcmd és a bcp DSN-támogatását.
További információ: Magas rendelkezésre állás és vészhelyreállítás Linux és macOS rendszeren.
-N[s|m|o]
Az ügyfél ezzel a beállítással titkosított kapcsolatot kér.
A -N kapcsoló lehet o (a optional), m (az mandatory alapértelmezett), vagy s (a strict számára). Ha nem tartalmazza -N, az alapértelmezett érték -Nm (a következőhöz mandatory). Ez az alapértelmezett érték jelentős változást jelent az SQL Server 2022 (16.x) és a korábbi verziókhoz képest, mivel az alapértelmezett érték -No.
Az sqlcmd (Go) segédprogramhoz egy sztringértéket kell megadnia, ami lehet -N, true vagy false, hogy ezáltal meghatározza a titkosítási lehetőséget. (default ugyanaz, mint a paraméter kihagyása):
Ha nem adja meg
-Nés-C, az sqlcmd a kiszolgálóval való hitelesítést a tanúsítvány érvényesítése nélkül egyezteti.Ha megadja
-N, de nem-C, az sqlcmd megköveteli a kiszolgálótanúsítvány érvényesítését. A titkosításfalseértéke továbbra is a bejelentkezési csomag titkosításához vezethet.Ha mind a
-N-t, mind a-C-et megadja, az sqlcmd az értékeiket használja a titkosítási egyeztetéshez.
-P jelszó
Felhasználó által megadott jelszó. A jelszavak megkülönböztetik a kis- és nagybetűket. Ha ezt a -U lehetőséget használja, de nem használja a -P beállítást, vagy nem állítja be a SQLCMDPASSWORD környezeti változót, az sqlcmd jelszót kér a felhasználótól. Ne használjon null (üres) jelszót, de megadhatja a null jelszót úgy, hogy egy pár összefüggő idézőjelet használ a paraméter értékének megadásakor ("").
Important
A használat -P nem biztonságos. Ne adja meg a jelszót a parancssorban. Másik lehetőségként használja a SQLCMDPASSWORD környezeti változót, vagy interaktívan adja meg a jelszót a -P lehetőség kihagyásával.
Használjon erős jelszót.
A jelszókérés a következő módon jelenik meg a konzolra való nyomtatással: Password:
A felhasználói bevitel el van rejtve. Ez azt jelenti, hogy semmi sem jelenik meg, és a kurzor a helyén marad.
A SQLCMDPASSWORD környezeti változó lehetővé teszi az aktuális munkamenet alapértelmezett jelszavának beállítását. Ezért a jelszavakat nem kell keményen kötegelt fájlokba kódolni. Az alábbi példa először beállítja a SQLCMDPASSWORD változót a parancssorban, majd hozzáfér az sqlcmd segédprogramhoz.
Írja be a következő parancsot a parancssorba. Cserélje le a <password> érvényes jelszóra.
SET SQLCMDPASSWORD=<password>
sqlcmd
SET SQLCMDPASSWORD=<password>
sqlcmd
SET SQLCMDPASSWORD=<password>
sqlcmd
Ha a felhasználónév és a jelszó kombinációja helytelen, hibaüzenet jelenik meg.
Note
A OSQLPASSWORD környezeti változó megmarad a visszamenőleges kompatibilitás érdekében. A SQLCMDPASSWORD környezeti változó elsőbbséget élvez a OSQLPASSWORD környezeti változóval szemben. Ez azt jelenti, hogy sqlcmd és osql interferencia nélkül használhatók egymás mellett. A régi szkriptek továbbra is működnek.
Ha a -P lehetőséget a -E lehetőséggel együtt használja, hibaüzenet jelenik meg.
Ha egynél több argumentummal használja a -P beállítást, hibaüzenet jelenik meg, és a program kilép.
A speciális karaktereket tartalmazó jelszó hibaüzenetet hozhat létre. A speciális karaktereket el kell kerülni, amikor a -P-t használja, vagy inkább a SQLCMDPASSWORD környezeti változót kell használnia.
Linuxon és macOS rendszeren, ha a -G beállítás nélkül -Uvan használva, -P egy hozzáférési jogkivonatot tartalmazó fájlt (v17.8+) ad meg. A jogkivonatfájlnak UTF-16LE (nincs BOM) formátumúnak kell lennie.
A hozzáférési jogkivonatok különböző módszerekkel szerezhetők be. Meg kell győződnie arról, hogy a hozzáférési jogkivonat bájtról bájtra helyes, mert ezt as-isküldi el. Az alábbi példaparancs egy hozzáférési jogkivonatot szerez be. A parancs az Azure CLI- és Linux-parancsokat használja, és a megfelelő formátumban menti azt egy fájlba. Ha a rendszer vagy a terminál alapértelmezett kódolása nem ASCII vagy UTF-8, előfordulhat, hogy módosítania kell a iconv beállításait. Ügyeljen arra, hogy gondosan biztosítsa az eredményül kapott fájlt, és törölje, ha már nincs rá szükség.
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 [protokoll:]kiszolgáló[\instance_name][,port]
Megadja az SQL Server azon példányát, amelyhez csatlakozni szeretne. Ez a beállítás beállítja a sqlcmd szkriptelési változót SQLCMDSERVER.
Adja meg a server_name az SQL Server alapértelmezett példányához való csatlakozáshoz az adott kiszolgálószámítógépen. Adja meg server_name[\instance_name] parancsot az SQL Server egy nevesített példányához való csatlakozáshoz a kiszolgálón. Ha nem ad meg kiszolgálószámítógépet, az sqlcmd a helyi számítógépen található SQL Server alapértelmezett példányához csatlakozik. Erre a beállításra akkor van szükség, ha távoli számítógépről futtatja az sqlcmd parancsot a hálózaton.
protokoll lehet tcp (TCP/IP), lpc (megosztott memória) vagy np (elnevezett csövek).
Ha nem ad meg server_name[\instance_name] értéket az sqlcmd indításakor, az SQL Server a SQLCMDSERVER környezeti változót ellenőrzi és használja.
Note
A OSQLSERVER környezeti változó megmarad a visszamenőleges kompatibilitás érdekében. A SQLCMDSERVER környezeti változó elsőbbséget élvez a OSQLSERVER környezeti változóval szemben. Ez azt jelenti, hogy sqlcmd és osql interferencia nélkül használhatók egymás mellett. A régi szkriptek továbbra is működnek.
A Linuxon és macOS-en futó ODBC-illesztőhöz szükséges -S. Az egyetlen érvényes protokollérték a .tcp
-U login_id
A bejelentkezési név vagy az adatbázisba foglalt felhasználónév. A tartalmazott adatbázis felhasználóinak meg kell adniuk az adatbázis neve opciót (-d).
Note
A OSQLUSER környezeti változó megmarad a visszamenőleges kompatibilitás érdekében. A SQLCMDUSER környezeti változó elsőbbséget élvez a OSQLUSER környezeti változóval szemben. Ez azt jelenti, hogy sqlcmd és osql interferencia nélkül használhatók egymás mellett. A régi szkriptek továbbra is működnek.
Ha nem adja meg a -U vagy a -P beállítást, sqlcmd a Windows hitelesítési móddal próbál csatlakozni. A hitelesítés az sqlcmd futtató felhasználó Windows-fiókján alapul.
Ha a -U lehetőséget használja a -E beállítással (amelyet a cikk későbbi részében ismertetünk), a rendszer hibaüzenetet hoz létre. Ha a -U beállítást egynél több argumentum követi, hibaüzenet jelenik meg, és a program kilép.
-z new_password
Módosítsa a jelszót. Cserélje le <oldpassword> a régi jelszóra, és <newpassword> az új jelszóra.
sqlcmd -U someuser -P <oldpassword> -z <newpassword>
sqlcmd -U someuser -P <oldpassword> -z <newpassword>
sqlcmd -U someuser -P <oldpassword> -z <newpassword>
-Z new_password
Módosítsa a jelszót, és lépjen ki. Cserélje le <oldpassword> a régi jelszóra, és <newpassword> az új jelszóra.
sqlcmd -U someuser -P <oldpassword> -Z <newpassword>
sqlcmd -U someuser -P <oldpassword> -Z <newpassword>
sqlcmd -U someuser -P <oldpassword> -Z <newpassword>
Bemeneti és kimeneti beállítások
-f codepage | i:codepage[,o:codepage] | o:codepage[,i:codepage]
Megadja a bemeneti és kimeneti kódlapokat. A kódlapszám egy numerikus érték, amely egy telepített Windows-kódlapot határoz meg.
Kódlapkonvertálási szabályok:
Ha nem ad meg kódlapot, az sqlcmd az aktuális kódlapot használja mind a bemeneti, mind a kimeneti fájlokhoz, kivéve, ha a bemeneti fájl Unicode-fájl, amely esetben nincs szükség átalakításra.
sqlcmd automatikusan felismeri a big endian és a little-endian Unicode bemeneti fájlokat is. Ha megadja a
-ubeállítást, a kimenet mindig little-endian Unicode.Ha nem ad meg kimeneti fájlt, a kimeneti kódlap a konzol kódlapja. Ezzel a módszerrel a kimenet megfelelően jelenik meg a konzolon.
A rendszer feltételezi, hogy több bemeneti fájl is ugyanazt a kódlapot használja. Unicode- és nem Unicode-bemeneti fájlok keverhetők.
Írja be chcp a parancssorba a cmd.exekódlapjának ellenőrzéséhez.
Note
Linux rendszeren a kódlapszám egy numerikus érték, amely egy telepített Linux-kódlapot határoz meg (amely a 17.5.1.1-es verzió óta érhető el).
-i input_file[,input_file2...]
Azonosítja azt a fájlt, amely Transact-SQL utasítások vagy tárolt eljárások kötegét tartalmazza. Több olyan fájlt is megadhat, amelyet az sqlcmd olvas be és dolgoz fel sorrendben. Ne használjon szóközöket a fájlnevek között.
Az sqlcmd először ellenőrzi, hogy az összes megadott fájl létezik-e. Ha egy vagy több fájl nem létezik, sqlcmd kilép. A -i lehetőség és a -Q/-q lehetőségek kölcsönösen kizárják egymást.
Note
Ha egy -i vagy több további paramétert követő beállítást használ, akkor szóközt kell használnia a paraméter és az érték között. Ez a követelmény az sqlcmd (Go) ismert hibája.
Elérésiút-példák:
-i C:\<filename>
-i \\<Server>\<Share$>\<filename>
-i "C:\Some Folder\<file name>"
A szóközöket tartalmazó fájl elérési útjait idézőjelek közé kell foglalni.
Ezt a lehetőséget többször is használhatja:
sqlcmd -i <input_file1> -i <input_file2>
sqlcmd -i <input_file1> -i <input_file2>
sqlcmd -i <input_file1> -i <input_file2>
-o output_file
Az sqlcmd kimenetét fogadó fájlt azonosítja.
Ha megadja -u, az sqlcmd Unicode formátumban tárolja a output_file . Ha a fájlnév érvénytelen, az sqlcmd hibaüzenetet hoz létre, és kilép.
sqlcmd nem támogatja több sqlcmd folyamat egyidejű írását ugyanarra a fájlra. Ha ez történik, vegye figyelembe, hogy a fájl kimenete sérült vagy helytelen. A -f lehetőség a fájlformátumok szempontjából is fontos.
Az sqlcmd létrehozza ezt a fájlt, ha nem létezik.
Az sqlcmd felülír egy korábbi munkamenet azonos nevű fájlját. Az itt megadott fájl nem a stdout fájl. Ha megad egy stdout fájlt, az sqlcmd nem használja ezt a fájlt.
Elérésiút-példák:
-o C:< filename>
-o \\<Server>\<Share$>\<filename>
-o "C:\Some Folder\<file name>"
A szóközöket tartalmazó fájl elérési útjait idézőjelek közé kell foglalni.
-r[0 | 1]
Átirányítja a hibaüzenet kimenetét a képernyőre (stderr). Ha nem ad meg paramétert, vagy ha 0ad meg, csak a 11-es vagy annál magasabb súlyosságú hibaüzenetek lesznek átirányítva. Ha 1ad meg, a rendszer átirányítja az összes hibaüzenet kimenetét, beleértve a PRINT is. Ez a beállítás nincs hatással a -ohasználata esetén. Alapértelmezés szerint a rendszer stdoutküld üzeneteket.
Note
Az sqlcmd (Go) segédprogramhoz -r0 vagy 1 argumentum szükséges.
-R
Csak a következőre vonatkozik: sqlcmd (ODBC).
Az sqlcmd lokalizálja az SQL Serverről az ügyfél területi beállításai alapján lekért numerikus, pénznem-, dátum- és időoszlopokat. Alapértelmezés szerint ezek az oszlopok a kiszolgáló területi beállításaival jelennek meg.
Note
Linuxon és macOS rendszeren -R jelenleg csak (amerikai angol) formázást használ en_US .
-u
Megadja, hogy a output_file Unicode formátumban legyen tárolva, a input_fileformátumától függetlenül.
Note
Az sqlcmd (Go) segédprogram esetében a létrehozott Unicode kimeneti fájl elő van tagolva az UTF-16 kis végű byte-order jelöléssel (BOM).
Lekérdezés-végrehajtási beállítások
-e
Bemeneti szkripteket ír a szabványos kimeneti eszközre (stdout).
-I
Csak a következőre vonatkozik: sqlcmd (ODBC).
Beállítja a SET QUOTED_IDENTIFIER kapcsolat opciót ON-re. Az alapértelmezett beállítás: OFF. További információ: SET QUOTED_IDENTIFIER.
Note
Ha le szeretné tiltani az idézett azonosító viselkedését az sqlcmd (Go) segédprogramban, adjon hozzá SET QUOTED IDENTIFIER OFF a szkriptekhez.
-q "parancsmag-lekérdezés"
Lekérdezést hajt végre az sqlcmd indításakor, de nem lép ki az sqlcmd-ből , amikor a lekérdezés befejeződik. Több, pontosvesszővel tagolt lekérdezést is futtathat. Használjon idézőjeleket a lekérdezés körül az alábbi példában látható módon.
A parancssorba írja be a következőt:
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
Ne használja a GO terminátort a lekérdezésben.
Ha ezzel a beállítással együtt adja meg -b , az sqlcmd hibaüzenettel lép ki. A -b lehetőséget a cikk más részein ismertetjük.
-Q "parancsmag-lekérdezés"
Lekérdezést hajt végre, amikor sqlcmd elindul, majd azonnal kilép sqlcmd. Több, pontosvesszővel tagolt lekérdezést is végrehajthat.
Használjon idézőjeleket a lekérdezés körül az alábbi példában látható módon.
A parancssorba írja be a következőt:
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
Ne használja a GO terminátort a lekérdezésben.
Ha ezzel a beállítással együtt adja meg -b , az sqlcmd hibaüzenettel lép ki. A -b lehetőséget a cikk más részein ismertetjük.
-t query_timeout
Meghatározza, hogy egy parancs (vagy Transact-SQL utasítás) hány másodperc után lép időtúllépésbe. Ez a beállítás az sqlcmd szkriptelési változót SQLCMDSTATTIMEOUTállítja be. Ha nem ad meg query_timeout értéket, akkor a parancs nem lép időkorlátba. A query_timeout értékének egy 1 és 65534 közé eső számnak kell lennie. Ha olyan értéket ad meg, amely nem numerikus vagy nem ebbe a tartományba esik, az sqlcmd hibát okoz.
Note
A tényleges időtúllépési érték néhány másodperccel eltérhet a megadott query_timeout értéktől.
-v var = érték [ var = érték... ]
Csak a Windowsra vonatkozik. A Linux és a macOS nem támogatott.
Létrehoz egy sqlcmd szkriptelési változót, amely egy sqlcmd szkriptben használható.
- Windows
-
Linux és macOS
Ha az érték szóközöket tartalmaz, akkor idézőjelek közé foglalja az értéket. Több <var>="<value>" értéket is megadhat. Ha a megadott értékek bármelyike hibát tartalmaz, az sqlcmd hibaüzenetet hoz létre, majd kilép.
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
Az sqlcmd a szkriptelési változók figyelmen kívül hagyását okozza. Ez a paraméter akkor hasznos, ha egy szkript számos olyan INSERT utasítást tartalmaz, amelyek olyan sztringeket tartalmazhatnak, amelyek formátuma megegyezik a normál változókkal, például $(<variable_name>).
Formázási beállítások
-h fejlécek
Megadja az oszlopfejlécek között nyomtatandó sorok számát. Az alapértelmezett beállítás minden lekérdezési eredménykészlethez egyszer nyomtatja ki a fejléceket. Ez a beállítás beállítja a sqlcmd szkriptelési változót SQLCMDHEADERS. A fejlécek nyomtatásának mellőzésére használható -1 . Érvénytelen érték esetén az sqlcmd hibaüzenetet generál, majd kilép.
-k [1 | 2]
Eltávolítja az összes vezérlőkaraktert, például a tabulátorokat és az új sorkaraktereket a kimenetből. Ez a paraméter megőrzi az oszlopformázást az adatok visszaadásakor.
-
-keltávolítja a vezérlőkaraktereket. -
-k1minden vezérlőkaraktert lecserél egy szóközre. -
-k2az egymást követő vezérlőkaraktereket egyetlen szóközre cseréli.
-s col_separator
Az oszlopelválasztó karaktert adja meg. Az alapértelmezett érték egy üres terület. Ez a beállítás beállítja a sqlcmd szkriptelési változót SQLCMDCOLSEP. Ha olyan karaktereket szeretne használni, amelyek különleges jelentéssel bírnak az operációs rendszer számára, például az ampersand (&) vagy pontosvessző (;), idézőjelek közé (") foglalja a karaktert. Az oszlopelválasztó bármilyen 8 bites karakter lehet.
-w screen_width
Megadja a kimenet képernyőszélességét. Ez a beállítás beállítja a sqlcmd szkriptelési változót SQLCMDCOLWIDTH. Az oszlopszélességnek 8-nél nagyobb és 65536-nél kisebb számnak kell lennie. Ha a megadott oszlopszélesség nem esik ebbe a tartományba, sqlcmd hibaüzenetet hoz létre. Az alapértelmezett szélesség 80 karakter. Ha egy kimeneti sor túllépi a megadott oszlopszélességű értéket, az a következő sorra tördel.
-W
Eltávolítja a záró szóközöket egy oszlopból. Ezt az opciót a -s opcióval együtt használja, amikor adatokat készít elő, amelyeket egy másik alkalmazásba szeretne exportálni. Nem használható a -y vagy -Y beállításokkal.
-y változó_hossz_típus_megjelenítési_szélesség
Beállítja sqlcmd szkriptelési változót SQLCMDMAXVARTYPEWIDTH. Az alapértelmezett érték a 256. Korlátozza a nagy változóhosszúságú adattípusokhoz visszaadott karakterek számát:
- varchar(max)
- nvarchar(max)
- varbinary(max)
- xml
- felhasználó által definiált adattípusok (UDT-k)
- text
- ntext
- image
Az UDT-k a megvalósítástól függően rögzített hosszúságúak lehetnek. Ha egy rögzített hosszúságú UDT hossza rövidebb, mint display_width, a visszaadott UDT értékét ez nem befolyásolja. Ha azonban a hossz hosszabb, mint display_width, a kimenet csonkolt lesz.
Caution
Használja a -y 0 lehetőséget rendkívül óvatosan, mert a visszaadott adatok méretétől függően jelentős teljesítményproblémákat okozhat mind a kiszolgálón, mind a hálózaton.
-Y fixed_length_type_display_width
Beállítja sqlcmd szkriptelési változót SQLCMDMAXFIXEDTYPEWIDTH. Az alapértelmezett érték ( 0 korlátlan). A következő adattípusokhoz visszaadott karakterek számát korlátozza:
- karakter (n), ahol 1 <≤ n< ≤ 8000
- nchar(n), ahol 1 <= n<= 4000
- varchar(n), ahol 1 <= n<= 8000
- nvarchar(n), ahol 1 <= n<= 4000
- varbinary(n), ahol 1 <= n<= 4000
- sql_variant
Hibajelentési lehetőségek
-b
Megadja, hogy sqlcmd kilép, és hiba esetén DOS ERRORLEVEL értéket ad vissza. Az sqlcmd által a ERRORLEVEL változóhoz 1 visszaadott érték az, amikor az SQL Server hibaüzenetének súlyossági szintje meghaladja a 10-et. Ellenkező esetben a visszaadott érték a következő 0. Ha beállítja a -V beállítást, -b az sqlcmd nem jelez hibát, ha a súlyossági szint alacsonyabb, mint a -V beállítással meghatározott értékek. A parancssori kötegfájlok tesztelhetik a ERRORLEVEL értékét, és megfelelően kezelhetik a hibát.
sqlcmd nem jelzi a 10-es súlyossági szintű (tájékoztató üzenetek) hibákat.
Ha a sqlcmd szkript helytelen megjegyzést, vagy szintaxishibát tartalmaz, vagy hiányzik belőle egy szkriptelési változó, a visszaadott eredmény ERRORLEVEL1.
-m error_level
Ez a funkció szabályozza, hogy mely hibaüzeneteket küldi a rendszer a stdout-ra. Az sqlcmd olyan üzeneteket küld, amelyek súlyossági szintje nagyobb vagy egyenlő ennél a szintnél. Ha ezt az értéket állítja be, az -1sqlcmd minden üzenetet elküld, beleértve az információs üzeneteket is. Ne tegyen szóközt a -m és a -1 közé. Például -m-1 érvényes, és -m -1 nem.
Ez a beállítás a sqlcmd szkriptelési változót is beállítja SQLCMDERRORLEVEL. Ez a változó alapértelmezett értéke 0.
-V hiba_súlyossági_szint
Az sqlcmd által a ERRORLEVEL változó beállításához használt súlyossági szintet szabályozza. A ERRORLEVELmegadott értéknél nagyobb vagy azzal egyenlő súlyossági szinttel rendelkező hibaüzenetek. A 0-nál kisebb értékek 0ként jelennek meg. A ERRORLEVEL változó értékét batch és CMD fájlokkal is tesztelheti.
Egyéb beállítások
-a packet_size
Eltérő méretű csomagot kér. Ez a beállítás beállítja a sqlcmd szkriptelési változót SQLCMDPACKETSIZE.
packet_size512 és 32767közötti értéknek kell lennie. Az alapértelmezett érték a 4096. A nagyobb csomagméret javíthatja a parancsok között GO sok Transact-SQL utasítással rendelkező szkriptek végrehajtásának teljesítményét. Nagyobb csomagméretet kérhet. Ha azonban a kérés megtagadva, sqlcmd a kiszolgáló alapértelmezett csomagméretét használja.
-c batch_terminator
A köteg terminátorát adja meg. Alapértelmezés szerint be kell fejeznie a parancsokat, és el kell küldenie őket az SQL Servernek egy külön sorban csak a GO szót használva, majd nyomja meg az Enter billentyűt. A kötegfolyamat lezáró visszaállításakor ne használjon Transact-SQL fenntartott kulcsszavakat vagy az operációs rendszer számára speciális jelentéssel bíró karaktereket. Még akkor sem, ha fordított perjellel vannak megelőzve.
-L[c]
Csak a Windowsra vonatkozik. A Linux és a macOS nem támogatott.
Felsorolja a helyileg konfigurált kiszolgálószámítógépeket, valamint a hálózaton sugárzott kiszolgálószámítógépek nevét. Ezt a paramétert nem használhatja más paraméterekkel kombinálva. A felsorolt kiszolgálószámítógépek maximális száma 3000. Ha a kiszolgálólista a puffer mérete miatt le van csonkolva, figyelmeztető üzenet jelenik meg.
Note
A hálózatokon való műsorszórás jellege miatt előfordulhat, hogy sqlcmd nem kap időben választ az összes kiszolgálótól. Ezért a visszaadott kiszolgálók listája ennek a beállításnak minden egyes meghívása esetén eltérő lehet.
Ha megadja az opcionális paramétert c, a kimenet a Servers: fejlécsor nélkül jelenik meg, és minden kiszolgálósor bevezető szóközök nélkül jelenik meg. Ezt a bemutatót tiszta kimenetnek nevezzük. A tiszta kimenet javítja a szkriptnyelvek feldolgozási teljesítményét.
-p[1]
Minden eredményhalmaz teljesítménystatisztikáit nyomtatja ki. Az alábbi megjelenítés a teljesítménystatisztikák formátumára mutat példát:
Network packet size (bytes): n
x xact[s]:
Clock Time (ms.): total t1 avg t2 (t3 xacts per sec.)
Where:
-
x= Az SQL Server által feldolgozott tranzakciók száma. -
t1= Az összes tranzakció teljes ideje. -
t2= Egyetlen tranzakció átlagos ideje. -
t3= A másodpercenkénti tranzakciók átlagos száma.
Minden időezredmásodpercben van.
Ha megadja az opcionális paramétert 1, a statisztikák kimeneti formátuma kettősponttal elválasztott formátumban van, amely könnyen importálható egy számolótáblába vagy egy szkripttel feldolgozható.
Ha az opcionális paramétert bármilyen más értékként megadja, mint a 1, a rendszer hibát generál, és kilép az sqlcmd.
-X[1]
Azokat a parancsokat tiltja le, amelyek veszélyeztethetik a rendszer biztonságát, amikor a sqlcmd kötegfájlból lesz végrehajtva. A letiltott parancsok továbbra is felismerve vannak; sqlcmd figyelmeztetést ad ki, és folytatódik. Ha megadja az opcionális paramétert 1, az sqlcmd hibaüzenetet hoz létre, majd kilép. A -X beállítás használatakor a következő parancsok lesznek letiltva:
ED-
!!parancs
Ha megadja a -X beállítást, megakadályozza a környezeti változók sqlcmd-nek való átadását. Emellett megakadályozza a SQLCMDINI szkriptelési változóval megadott indítási szkript végrehajtását. Az sqlcmd szkriptelési változók további információ: sqlcmd – Használat szkriptelési változókkal.
-?
Megjeleníti az sqlcmd verzióját és egy összefoglalót a sqlcmd szintaxis opcióiról.
Note
MacOS rendszeren futtassa inkább a sqlcmd '-?' (idézőjelekkel).
Remarks
A szintaxis szakaszban látható sorrendben nem kell beállításokat használnia.
Note
Ha egy -i vagy több további paramétert követő beállítást használ, akkor szóközt kell használnia a paraméter és az érték között. Ez a követelmény az sqlcmd (Go) ismert hibája.
Az sqlcmd egy köteg több eredményhalmaza között üres sort nyomtat ki. Ezenkívül az <x> rows affected üzenet nem jelenik meg, ha az nem vonatkozik a futó utasításra.
Ha interaktívan szeretné használni sqlcmd, írja be a parancssorba a sqlcmd a cikkben korábban ismertetett lehetőségek bármelyikével. További információ: Az sqlcmd használata.
Note
A beállítások -l, -Qvagy -Z-i az sqlcmd a végrehajtás után való kilépését okozzák.
Az alapul szolgáló operációs rendszer határozza meg az sqlcmd parancssor teljes hosszát a parancskörnyezetben (például cmd.exebash), beleértve az összes argumentumot és kiterjesztett változót.
DSN-támogatás sqlcmd és bcp esetén
Az sqlcmd vagy a bcp -S opció (vagy a sqlcmd :Connect parancs) esetében megadhatja az adatforrás nevét (DSN) a kiszolgáló neve helyett, ha a -D van megadva. Ha ezt a lehetőséget használja, az -Dsqlcmd és a bcp csatlakozzon a DSN-ben megadott kiszolgálóhoz a -S beállítással.
A rendszer DSN-jei a odbc.ini fájlban vannak tárolva az ODBC SysConfigDir könyvtárban (/etc/odbc.ini standard telepítések esetén). A felhasználói DSN-eket a rendszer egy felhasználó kezdőkönyvtárában .odbc.ini (~/.odbc.ini) tárolja.
Windows rendszereken a rendszer- és felhasználói DSN-ek a beállításjegyzékben vannak tárolva, és a odbcad32.exe segítségével kezelhetők.
A bcp és az sqlcmd nem támogatja a fájlDSN-eket.
Az illesztőprogram által támogatott bejegyzések listáját a DSN és a kapcsolati sztring kulcsszavak és attribútumok című témakörben találja.
DSN-ben csak a DRIVER bejegyzésre van szükség. Távoli kiszolgálóhoz való csatlakozáshoz az sqlcmd vagy a bcp elemnek szüksége van egy értékre SERVER . Ha az SERVER elem üres vagy nem található a DSN-ben, az sqlcmd vagy a bcp megpróbál csatlakozni a helyi rendszer alapértelmezett példányához.
Ha a bcp-t Windows rendszereken használja, az SQL Server 2017 (14.x) és a korábbi verziók megkövetelik az SQL Native Client 11 illesztőprogramot (sqlncli11.dll), míg az SQL Server 2019 (15.x) és újabb verziókhoz az SQL Server-illesztőprogramhozmsodbcsql17.dll () készült Microsoft ODBC Driver 17 szükséges.
Ha ugyanazt a beállítást adja meg a DSN-ben és az sqlcmd vagy bcp parancssorban is, a parancssori beállítás felülírja a DSN-ben használt értéket. Ha például a DSN tartalmaz egy bejegyzést DATABASE , és az sqlcmd parancssor tartalmazza -d, a rendszer az átadott -d értéket használja. Ha a DSN-ben adja meg Trusted_Connection=yes , a rendszer Kerberos-hitelesítést használ; a rendszer figyelmen kívül hagyja a felhasználónevet (-U) és a jelszót (-Pha meg van adva).
Az isql használatára meghívott meglévő szkripteket a következő alias definiálásával módosíthatja: alias isql="sqlcmd -D".
sqlcmd – ajánlott eljárások
Az alábbi eljárásokkal maximalizálhatja a biztonságot és a hatékonyságot:
Integrált biztonság használata.
Használjon
-X[1]automatizált környezetekben.A bemeneti és kimeneti fájlok biztonságossá tételéhez használja a megfelelő fájlrendszer-engedélyeket.
A teljesítmény növelése érdekében tegye a lehető legnagyobb mértékben egy sqlcmd munkamenetben a munkamenetek sorozatának használata helyett.
Állítsa be a köteg vagy lekérdezés végrehajtásának időtúllépési értékeit a köteg vagy lekérdezés várt végrehajtási idejénál magasabb értékekkel.
A helyesség maximalizálása érdekében használja az alábbi eljárásokat:
A
-V 16használatával naplózhatja a súlyosságú 16 szintű üzeneteket. A 16-os súlyosságú üzenetek olyan általános hibákat jeleznek, amelyeket kijavíthat.Ellenőrizze a kilépési kódot és
DOS ERRORLEVELa változót a folyamat kilépése után. az sqlcmd a normál értéket adja vissza0. Ellenkező esetben aERRORLEVELa-Váltal beállítottak szerint van beállítva. Más szóval ne számítsonERRORLEVELarra, hogy ugyanaz az érték, mint az SQL Serverről jelentett hibaszám. A hibaszám egy SQL Server-specifikus érték, amely megfelel a rendszerfüggvény @@ERROR.ERRORLEVELegy sqlcmd-specifikus érték, amely jelzi az sqlcmd megszakításának okát. Értékét a paraméter megadásával lehet befolyásolni-b.
A -V 16-nak a kilépési kód és a DOS ERRORLEVEL ellenőrzésével együtt történő használata segíthet az automatizált környezetekben a hibák észlelésében, különösen az éles kiadás előtti minőségi kapuknál.
Kapcsolódó tartalom
- Az sqlcmd segédprogram telepített verziójának ellenőrzése
- Az sqlcmd segédprogram letöltése és telepítése
- Az sqlcmd segédprogram parancsai
- Sqlcmd használata szkriptelési változókkal
- Gyors kezdés: SQL Server Linux-konténerképek futtatása a Dockerrel
- Az sqlcmd segédprogram indítása
- T-SQL végrehajtása szkriptfájlból sqlcmd használatával
- Az sqlcmd használata
- Csatlakozás SQL Serverhez sqlcmd használatával
- SQLCMD-szkriptek szerkesztése a Lekérdezésszerkesztővel
- CmdExec-feladatlépés létrehozása