Megosztás a következőn keresztül:


sqlcmd segédprogram

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database a Microsoft Fabric

Az sqlcmd segédprogram lehetővé teszi Transact-SQL utasítások, rendszereljárások és szkriptfájlok megadását különböző módokon:

  • A parancssorban.
  • Lekérdezésszerkesztőben SQLCMD módban.
  • Windows-szkriptfájlban.
  • Egy SQL Server Agent-feladat operációs rendszerbeli (cmd.exe) feladatlépésében.

Jegyzet

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-tools csomag 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) előzetes verziója bemutatja az sqlcmd segédprogram TDS 8.0-s támogatását.

Szintaxis

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.

Az sqlcmd szintaxisának és használatának részletesebb információkért lásd ODBC sqlcmd szintaxis.

Az sqlcmd (ODBC) jelentős változásai

A sqlcmd (Go) segédprogram számos kapcsolót és viselkedést módosít. A legfrissebb lista a hiányzó zászlókról a visszafelé kompatibilitás érdekében elérhető a Visszafelé kompatibilitási zászlók implementálásának prioritása GitHub megbeszélésében.

  • Az sqlcmd (Go) korábbi verzióiban a -P kapcsoló ideiglenesen el lett távolítva, és az SQL Server-hitelesítéshez csak az alábbi mechanizmusokon keresztül lehetett jelszavakat biztosítani:

    • A SQLCMDPASSWORD környezeti változó
    • A :CONNECT parancs
    • Amikor a rendszer kéri, a felhasználó beírhatja a jelszót a kapcsolat befejezéséhez
  • -r 0 vagy 1 argumentumot igényel

  • -R kapcsoló el lesz távolítva.

  • -I kapcsoló el lesz távolítva. Az idézett azonosító viselkedésének letiltásához adjon hozzá SET QUOTED IDENTIFIER OFF-et a szkriptekhez.

  • -N egy sztringértéket vesz fel, amely lehet az egyik true, falsevagy disable a titkosítási választás megadásához. (default ugyanaz, mint a paraméter kihagyása)

    • Ha nincs megadva -N és -C, sqlcmd a kiszolgálótanúsítvány érvényesítése nélkül egyezteti a kiszolgálóval a hitelesítést.
    • Ha -N van megadva, de -C nem, sqlcmd a kiszolgálótanúsítvány érvényesítését igényli. A titkosítás false értéke továbbra is a bejelentkezési csomag titkosításához vezethet.
    • Ha -N és -C is meg van adva, sqlcmd a titkosítási egyeztetéshez használja az értékeiket.
    • Az ügyfél-/kiszolgálótitkosítási egyeztetésről további információt MS-TDS PRELOGINtalál.

    Fontos

    Az SQL Server 2025 (17.x) előzetes verziójában a -N lehet o (a optional-hez), m (az alapértelmezett mandatory-hez) vagy s (a strict-hez). Ha nem adja meg -N, akkor -Nm lesz az alapértelmezett (a mandatory esetében). Ez egy jelentős változás az SQL Server 2022 (16.x) és a korábbi verziókhoz képest.

  • -u A létrehozott Unicode kimeneti fájlhoz hozzá van írva az UTF-16 Little-Endian byte-order mark (BOM).

  • Bizonyos viselkedések, amelyekkel a kompatibilitás OSQL fenntartá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, így a EXIT(query) által futtatott lekérdezés több sorra is kiterjedhet.

Az sqlcmd (Go) segédprogram kapcsolatai TCP-kapcsolatokra korlátozódnak. A nevesített csövek jelenleg nem támogatottak a go-mssqldb meghajtóban.

Erősítés

  • :Connectválasztható -G paramé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 -G nincs megadva, a rendszer integrált biztonságot vagy SQL Server-hitelesítést használ egy -U felhasználóneves paraméter meglététől függően.

  • A --driver-logging-level parancssori paraméter lehetővé teszi a nyomkövetések megtekintését az go-mssqldb illesztőprogramból. A 64 használatával tekintse meg az összes nyomot.

  • Az sqlcmd (Go) függőleges formátumban tudja kinyomtatni az eredményeket. Állítsa be a -F vertical parancssori kapcsolót. A SQLCMDFORMAT szkriptelési változó is szabályozza azt.

    Jegyzet

    Ez eltér az -Fsqlcmd (ODBC) címkétől, ami -N a tanúsítvány gazdagépnevének megadására szolgál.

Parancssori beállítások

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.

Parancssori lehetőség Windows rendszeren támogatott Linux és macOS rendszeren támogatott
Bejelentkezéssel kapcsolatos beállítások
-Egy Igen Nem
-C Igen Igen
-d db_name Igen Igen
-D Igen Igen
-l bejelentkezési_időtúllépés Igen Igen
-E Igen Igen
-g Igen Igen
-G Igen Igen
-H workstation_name Igen Igen
-j Igen Igen
-K alkalmazási_szándék Igen Igen
-M multisubnet_failover Igen Igen
-N Igen Igen
-P jelszó Igen Igen
-S [protokoll:]kiszolgáló[\instance_name][,port] Igen Igen
-U login_id Igen Igen
-z new_password Igen Igen
-Z new_password Igen Igen
Bemeneti/kimeneti beállítások
-f codepage | i:codepage[,o:codepage] | o:codepage[,i:codepage] Igen Igen
-i input_file[,input_file2...] Igen Igen
-o kimeneti_fájl Igen Igen
-r[0 | 1] Igen Igen
-R Igen Igen
-u Igen Igen
Lekérdezés-végrehajtási beállítások
-e Igen Igen
-Én Igen Igen
-q "cmdline query" Igen Igen
-Q "cmdline query" Igen Igen
-t query_timeout Igen Igen
-v var = érték [ var = érték... ] Igen Nem
-x Igen Igen
Formázási beállítások
-h fejlécek Igen Igen
-k [1 | 2] Igen Igen
-s col_separator Igen Igen
-w screen_width Igen Igen
-W Igen Igen
-y változó_hosszúságú_típus_megjelenítési_szélesség Igen Igen
-Y fix hosszúságú típus megjelenítési szélessége Igen Igen
Hibajelentési lehetőségek
-b Igen Igen
-m error_level Igen Igen
-V hiba_súlyossági_szint Igen Igen
Egyéb beállítások
-a csomag_méret Igen Igen
-c batch_terminator Igen Igen
-L[c] Igen Nem
-p[1] Igen Igen
-X[1] Igen Igen
-? Igen Igen

A

Csak Windowsra érvényes. A Linux és a macOS nem támogatott.

Dedikált rendszergazdai kapcsolattal (DAC) jelentkezik be az SQL Serverre. Ez a kapcsolat a kiszolgáló hibaelhárítására szolgál. 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. Ha -Ahasználatával csatlakozik az Azure SQL Database-hez, rendszergazdának kell lennie a logikai SQL-kiszolgálón. A DAC nem érhető el a Microsoft Entra rendszergazdái számára.

Jegyzet

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

Ezt a beállítást az ügyfél úgy konfigurálja, hogy a kiszolgálótanúsítványt hitelesítés nélkül implicit módon megbízhatónak tekintse. 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 nincs megadva -N és -C, sqlcmd a kiszolgálótanúsítvány érvényesítése nélkül egyezteti a kiszolgálóval a hitelesítést.
  • Ha -N van megadva, de -C nem, sqlcmd a kiszolgálótanúsítvány érvényesítését igényli. A titkosítás false értéke továbbra is a bejelentkezési csomag titkosításához vezethet.
  • Ha -N és -C is meg van adva, 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.

Jegyzet

A -D lehetőség csak Linux és macOS rendszerű ügyfeleken érhető el. Windows-ügyfeleken ez egy elavult beállításra utal, amelyet eltávolítottak, és figyelmen kívül hagyják.

-l bejelentkezési_időtúllépés

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 történő 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 0 és 65534közötti számnak kell lennie. Ha a megadott érték nem numerikus, vagy nem esik ebbe a tartományba, sqlcmd hibaüzenetet generál. 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.

Jegyzet

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.

-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 hajtsa végre a(z) sqlcmd -?-et.

-G

Ezt a lehetőséget az ügyfél használja az Azure SQL Database-hez vagy az Azure Synapse Analyticshez való csatlakozáskor annak megadásához, hogy a felhasználó microsoft Entra-hitelesítéssel legyen hitelesítve. 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 hajtsa végre a(z) sqlcmd -?-et. 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 a hostname katalógusnézet sys.sysprocesses oszlopában található, és a tárolt eljárás sp_whohasználatával adható vissza. Ha ez a beállítás nincs megadva, az alapértelmezett beállítás az aktuális számítógépnév. Ez a név különböző sqlcmd munkamenetek azonosítására használható.

-j

Nyers hibaüzeneteket jelenít meg a képernyőn.

-K alkalmazási_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 nincs megadva -K, sqlcmd nem támogatja a másodlagos replikával való kapcsolatot 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.

Jegyzet

-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 több alhálózatú átállás

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 nincs megadva -M, -M ki van kapcsolva.

További információkért lásd:

Jegyzet

-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

Az ügyfél ezt a lehetőséget használja titkosított kapcsolat kéréséhez.

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):

Jegyzet

Linux és macOS rendszeren az [s|m|o]sqlcmd 18.0-s verziója lett hozzáadva. -N lehet o (a optional), m (az mandatoryalapértelmezett), vagy s (a strict). Az SQL Server 2025 (17.x) előzetes verziójában, ha nem tartalmazza a -N kifejezést, a -Nm (a mandatory esetén) az alapértelmezett. Ez az SQL Server 2022 (16.x) és a korábbi verziók kompatibilitástörő változása, ahol -No az alapértelmezett.

  • Ha nincs megadva -N és -C, sqlcmd a kiszolgálótanúsítvány érvényesítése nélkül egyezteti a kiszolgálóval a hitelesítést.

  • Ha -N van megadva, de -C nem, sqlcmd a kiszolgálótanúsítvány érvényesítését igényli. A titkosítás false értéke továbbra is a bejelentkezési csomag titkosításához vezethet.

  • Ha -N és -C is meg van adva, sqlcmd a titkosítási egyeztetéshez használja az értékeiket.

  • Az sqlcmd (ODBC) fájlban adja -F meg a gazdagép nevét a tanúsítványban. Például:

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

    Jegyzet

    Ez eltér az -Fsqlcmd (Go) kapcsolótól, amely az eredmények függőleges formátummal való nyomtatására szolgál.

-P jelszó

Felhasználó által megadott jelszó. A jelszavak megkülönböztetik a kis- és nagybetűket. -U A beállítás használata esetén a rendszer nem használja a -P beállítást, és a SQLCMDPASSWORD környezeti változó nincs beállítva, az sqlcmd jelszó megadását kéri a felhasználótól. Nem javasoljuk null (üres) jelszó használatát, de a null jelszót a paraméter értékéhez ("") egy összefüggő idézőjelpár használatával adhatja meg.

Fontos

A -P használata 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.

Javasoljuk, hogy 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.

Jegyzet

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 opciót a -E opcióval használja, hibaüzenet keletkezik.

Ha a -P beállítást egynél több argumentum követi, 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 beolvas egy hozzáférési jogkivonatot. 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. 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 nincs megadva kiszolgálószámítógép, sqlcmd csatlakozik a helyi számítógépen található SQL Server alapértelmezett példányához. Ez a beállítás akkor szükséges, ha sqlcmd-t hajt végre egy távoli számítógépről a hálózaton keresztül.

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.

Jegyzet

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

Jegyzet

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 beállítást használja a -E lehetőséggel (a cikk későbbi részében ismertetjük), hibaüzenet jön 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 új_jelszó

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 uj_jelszo

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/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 nincs megadva kódlap, 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 a -u beállítás meg van adva, a kimenet mindig kis endian Unicode.

  • Ha nincs megadva kimeneti fájl, 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 ugyanahhoz a kódlaphoz tartoznak. Unicode- és nem Unicode-bemeneti fájlok keverhetők.

Írja be chcp a parancssorba a cmd.exekódlapjának ellenőrzéséhez.

Jegyzet

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 fájl is megadható, amelyek olvasása és feldolgozása sorrendben történik. Ne használjon szóközöket a fájlnevek között. 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 és a -Q/-q lehetőségek kölcsönösen kizárják egymást.

Jegyzet

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 egy ismert probléma a sqlcmd (Go) esetében.

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

Ez a beállítás többször is használható:

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

-o kimeneti_fájl

Az sqlcmd kimenetét fogadó fájlt azonosítja.

Ha -u van megadva, a output_file Unicode formátumban lesz tárolva. Ha a fájlnév érvénytelen, hibaüzenet jelenik meg, és sqlcmd kilép. sqlcmd nem támogatja több sqlcmd folyamat egyidejű írását ugyanarra a fájlra. A fájlkimenet sérült vagy helytelen. A -f lehetőség a fájlformátumok szempontjából is fontos. Ez a fájl akkor jön létre, ha nem létezik. Egy korábbi sqlcmd munkamenet azonos nevű fájlja felülíródik. Az itt megadott fájl nem a stdout fájl. Ha egy stdout fájl van megadva, a rendszer nem használja ezt a fájlt.

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

Jegyzet

Az sqlcmd (Go) segédprogramhoz -r0 vagy 1 argumentum szükséges.

-R

Csak a következőkre vonatkozik: ODBC sqlcmd.

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.

Jegyzet

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.

Jegyzet

Az sqlcmd (Go) segédprogram esetén a létrehozott Unicode kimeneti fájlhoz az UTF-16 Little-Endian bájtsorrendi jel (BOM) kerül írásra.

Lekérdezés-végrehajtási beállítások

-e

Bemeneti szkripteket ír a szabványos kimeneti eszközre (stdout).

-Én

Csak a következőkre vonatkozik: ODBC sqlcmd.

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.

Jegyzet

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ődött. Több pontosvessző által tagolt lekérdezés 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 AdventureWorks2022 -q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2022 -q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"
sqlcmd -d AdventureWorks2022 -q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2022 -q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"
sqlcmd -d AdventureWorks2022 -q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2022 -q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"

Fontos

Ne használja a GO terminátort a lekérdezésben.

Ha -b van megadva ezzel a beállítással együtt, sqlcmd hiba esetén kilép. -b című cikket máshol ismertetjük.

-Q "parancsmag-lekérdezés"

Lekérdezést hajt végre, amikor sqlcmd elindul, majd azonnal kilép sqlcmd. Többszörös pontosvesszővel elválasztott lekérdezések végrehajthatók.

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 AdventureWorks2022 -Q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2022 -Q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"
sqlcmd -d AdventureWorks2022 -Q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2022 -Q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"
sqlcmd -d AdventureWorks2022 -Q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2022 -Q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"

Fontos

Ne használja a GO terminátort a lekérdezésben.

Ha -b van megadva ezzel a beállítással együtt, sqlcmd hiba esetén kilép. -b című cikket máshol ismertetjük.

-t lekérdezési_késleltetés

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 nincs megadva query_timeout érték, a parancs nem lép időtúllépésbe. A query_timeout1 és 65534 közötti számnak kell lennie. Ha a megadott érték nem numerikus, vagy nem ebbe a tartományba esik, sqlcmd hibaüzenetet generál.

Jegyzet

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 Windowsra érvényes. A Linux és a macOS nem támogatott.

Létrehoz egy sqlcmd szkriptelési változót, amely használható egy sqlcmd szkriptben.

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ármelyikében hiba lép fel, sqlcmd hibaüzenetet generál, 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 a fejlécek nyomtatása minden lekérdezési eredménykészlethez. Ez a beállítás beállítja a sqlcmd szkriptelési változót SQLCMDHEADERS. A -1 használatával megadhatja, hogy a fejlécek ne legyenek kinyomtatva. Minden érvénytelen érték miatt 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.

  • -k eltávolítja a vezérlőkaraktereket.
  • -k1 minden vezérlőkaraktert lecserél egy szóközre.
  • -k2 az egymást követő vezérlőkaraktereket egyetlen szóközre cseréli.

-s oszlopszeparátor

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 képernyő szélesség

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

Ez a beállítás eltávolítja a záró szóközöket egy oszlopból. Ezt a lehetőséget a -s beállítással együtt használhatja egy másik alkalmazásba exportálandó adatok előkészítésekor. Nem használható a -y vagy -Y beállításokkal.

-y változószélesség_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)
  • szöveg
  • kontextus
  • kép

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 rövidebb, mint display_width, a visszaadott UDT értéke nem lesz hatással. Ha azonban a hossz hosszabb, mint display_width, a kimenet csonkolt lesz.

Figyelem

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 rögzített_hosszúságú_típus_kijelző_szélesség

Beállítja sqlcmd szkriptelési változót SQLCMDMAXFIXEDTYPEWIDTH. Az alapértelmezett érték a 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. A ERRORLEVEL változónak visszaadott érték 1, ha az SQL Server hibaüzenetének súlyossági szintje 10-nél nagyobb; ellenkező esetben a visszaadott érték 0. Ha a -V beállítás be van állítva, az -bsqlcmd nem jelent hibát, ha a súlyossági szint alacsonyabb, mint a használt -Vé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 hiba_szint

Ez a funkció szabályozza, hogy mely hibaüzeneteket küldi a rendszer a stdout-ra. A rendszer olyan üzeneteket küld, amelyek súlyossági szintje nagyobb vagy egyenlő ennél a szintnél. Ha ez az érték -1értékre van állítva, a rendszer minden üzenetet elküld, beleértve az információs üzeneteket is. A -m és a -1között nem engedélyezett szóközök használata. 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

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 Batch- és CMD-fájlok a ERRORLEVEL változó értékének tesztelésére használhatók.

Egyéb beállítások

-a csomag_méret

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 azon szkriptek végrehajtását, amelyek GO parancsok között sok Transact-SQL utasítással rendelkeznek. 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 a parancsok leállnak, és az SQL Serverre küldik a GO szót egy sorba beírva. 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 Windowsra érvényes. 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. Ez a paraméter nem használható más paraméterekkel kombinálva. A felsorolt kiszolgálói számítógépek maximális száma 3000. Ha a kiszolgálólista a puffer mérete miatt csonkolódik, figyelmeztető üzenet jelenik meg.

Jegyzet

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 az opcionális paraméter c van megadva, 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.)

Hol?

  • 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 meg van adva az opcionális 1 paraméter, a statisztikai adatok 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éter nem 1érték, a rendszer hibát generál, és sqlcmd kilép.

-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 meg van adva az opcionális 1 paraméter, sqlcmd hibaüzenetet generál, majd kilép. A -X beállítás használatakor a következő parancsok lesznek letiltva:

  • ED
  • !! parancs

Ha a -X beállítás meg van adva, megakadályozza a környezeti változók átadását sqlcmd. 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.

Jegyzet

MacOS rendszeren futtassa inkább a sqlcmd '-?' (idézőjelekkel).

Megjegyzések

A beállításokat nem kell használni a szintaxis szakaszban látható sorrendben.

Jegyzet

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 egy ismert probléma a sqlcmd (Go) esetében.

Ha több eredményt ad vissza, sqlcmd egy üres sort nyomtat ki a köteg egyes eredményhalmazai között. Ezenkívül a <x> rows affected üzenet nem jelenik meg, ha az nem vonatkozik a végrehajtott 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.

Jegyzet

A beállítások -l, -Q, -Z vagy -isqlcmd kilépését okozzák a végrehajtás után.

Az sqlcmd parancssori teljes hosszát (például cmd.exe vagy bash) az alapul szolgáló operációs rendszer határozza meg, 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. -D lehetővé teszi, hogy az sqlcmd vagy a bcp a -S opció által a DSN-ben megadott kiszolgálóhoz csatlakozzon.

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 kapcsolatsztring kulcsszavak és attribútumok között találja.

A DSN-ben csak a DRIVER bejegyzésre van szükség, de egy távoli kiszolgálóhoz való csatlakozáshoz az sqlcmd vagy a bcp értékre van szüksége az SERVER elemben. Ha az SERVER elem üres vagy nem található a DSN-ben, az sqlcmd és 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 a DSN-ben és az sqlcmd vagy bcp parancssorban is ugyanez a beállítás van megadva, 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 Trusted_Connection=yes a DSN-ben meg van adva, 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ívható meglévő szkriptek a következő alias definiálásával módosíthatók: 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 egy sqlcmd munkamenetben végezze el a lehető legtöbb műveletet a munkamenetek sorozata helyett.

  • Állítsa be a köteg vagy lekérdezés végrehajtási időkorlátját az előrejelzettnél hosszabbra, hogy biztosítsa a köteg vagy lekérdezés sikeres végrehajtását.

A helyesség maximalizálása érdekében használja az alábbi eljárásokat:

  • A -V 16 haszná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 a felhasználó kijavíthat.

  • Ellenőrizze a kilépési kódot és DOS ERRORLEVEL a változót a folyamat kilépése után. sqlcmd általában 0 ad vissza, ellenkező esetben a ERRORLEVELáltal konfigurált -V állítja be. Más szóval a ERRORLEVEL várhatóan nem lesz 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. ERRORLEVEL egy sqlcmd-specifikus érték, amely jelzi, hogy miért sqlcmd leállt, és értékét -b parancssori argumentum megadásával befolyásolja.

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.