Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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
- A
-r
0
vagy1
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 egyiktrue
,false
vagydisable
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ásfalse
é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
leheto
(aoptional
-hez),m
(az alapértelmezettmandatory
-hez) vagys
(astrict
-hez). Ha nem adja meg-N
, akkor-Nm
lesz az alapértelmezett (amandatory
esetében). Ez egy jelentős változás az SQL Server 2022 (16.x) és a korábbi verziókhoz képest.- Ha nincs megadva
-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
EXIT
is. 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 aEXIT(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
:Connect
vá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
,ActiveDirectoryManagedIdentity
ActiveDirectoryPassword
. 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 azgo-mssqldb
illesztőprogramból. A64
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. ASQLCMDFORMAT
szkriptelési változó is szabályozza azt.Jegyzet
Ez eltér az
-F
sqlcmd (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.
Bejelentkezéssel kapcsolatos beállítások
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 -A
haszná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 = true
beá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ásfalse
é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 65534
kö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_who
haszná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:
- 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ürtözés és az 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
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 mandatory
alapé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ásfalse
é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
-F
sqlcmd (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 -U
van 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.exe
kó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 0
ad meg, csak a 11-es vagy annál magasabb súlyosságú hibaüzenetek lesznek átirányítva. Ha 1
ad 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 -o
használata esetén. Alapértelmezés szerint a rendszer stdout
küld üzeneteket.
Jegyzet
Az sqlcmd (Go) segédprogramhoz -r
0
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.
- 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á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 -b
sqlcmd 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 ERRORLEVEL
1
.
-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 -1
kö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 ERRORLEVEL
megadott értéknél nagyobb vagy azzal egyenlő súlyossági szinttel rendelkező hibaüzenetek. A 0-nál kisebb értékek 0
ké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 32767
kö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 -i
sqlcmd 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 (-P
ha 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ában0
ad vissza, ellenkező esetben aERRORLEVEL
által konfigurált-V
állítja be. Más szóval aERRORLEVEL
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.
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