Bagikan melalui


Utilitas sqlcmd

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL database di Microsoft Fabric

Utilitas sqlcmd memungkinkan Anda memasukkan pernyataan Transact-SQL, prosedur sistem, dan file skrip melalui berbagai mode:

  • Pada prompt perintah.
  • Di Editor Kueri, mode SQLCMD aktif.
  • Dalam file skrip Windows.
  • Dalam langkah pekerjaan sistem operasi (cmd.exe) pada pekerjaan SQL Server Agent.

Catatan

Meskipun MICROSOFT Entra ID adalah nama baru untuk Azure Active Directory (Azure AD), untuk mencegah mengganggu lingkungan yang ada, Azure AD masih tetap berada di beberapa elemen yang dikodekan secara permanen seperti bidang UI, penyedia koneksi, kode kesalahan, dan cmdlet. Dalam artikel ini, dua nama tersebut dapat dipertukarkan.

varian sqlcmd

Ada dua varian sqlcmd:

  • sqlcmd (Go): go-mssqldbsqlcmd berbasis, kadang-kadang disebut sebagai go-sqlcmd. Versi ini adalah alat mandiri yang dapat Anda unduh secara independen dari SQL Server. Ini berjalan pada Windows, macOS, Linux, dan dalam kontainer.

  • sqlcmd (ODBC): Sqlcmd berbasis ODBC yang selaras dengan platform, tersedia dengan SQL Server atau Utilitas Baris Perintah Microsoft, dan bagian mssql-tools dari paket di Linux. Ini juga berjalan di Windows, macOS, Linux, dan dalam kontainer.

Untuk mengetahui varian dan versi sqlcmd mana yang diinstal pada sistem Anda, lihat Memeriksa versi utilitas sqlcmd yang diinstal.

Untuk informasi tentang cara mendapatkan sqlcmd, lihat Mengunduh dan menginstal utilitas sqlcmd.

Dukungan TDS 8.0

Pratinjau SQL Server 2025 (17.x) memperkenalkan dukungan TDS 8.0 untuk utilitas sqlcmd .

Sintaks

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.

Untuk informasi lebih mendalam tentang sintaks dan penggunaan sqlcmd , lihat sintaks sqlcmd ODBC.

Melanggar perubahan dari sqlcmd (ODBC)

Beberapa sakelar dan perilaku diubah pada utilitas sqlcmd (Go). Untuk daftar terbaru bendera yang belum ada untuk kompatibilitas ke belakang, kunjungi diskusi Prioritaskan implementasi bendera kompatibilitas ke belakang di GitHub.

  • Dalam versi sqlcmd (Go) sebelumnya, -P pengalih sementara dihapus, dan kata sandi untuk Autentikasi SQL Server hanya dapat disediakan melalui mekanisme-mekanisme berikut:

    • Variabel SQLCMDPASSWORD lingkungan
    • Perintah :CONNECT
    • Ketika diminta, pengguna dapat mengetik kata sandi untuk menyelesaikan koneksi
  • -r memerlukan argumen 0 atau 1

  • -R sakelar dihapus.

  • -I sakelar dihapus. Untuk menonaktifkan perilaku pengidentifikasi yang dikutip, tambahkan SET QUOTED IDENTIFIER OFF ke dalam skrip Anda.

  • -N mengambil nilai string yang bisa menjadi salah satu dari true, false, atau disable untuk menentukan pilihan enkripsi. (default sama dengan menghilangkan parameter)

    • Jika -N dan -C tidak disediakan, sqlcmd menegosiasikan autentikasi dengan server tanpa memvalidasi sertifikat server.
    • Jika -N disediakan tetapi -C tidak, sqlcmd memerlukan validasi sertifikat server. false Nilai untuk enkripsi mungkin masih menyebabkan enkripsi paket login.
    • Jika keduanya -N dan -C disediakan, sqlcmd menggunakan nilainya untuk negosiasi enkripsi.
    • Informasi selengkapnya tentang negosiasi enkripsi klien/server dapat ditemukan di MS-TDS PRELOGIN.

    Penting

    Dalam Pratinjau SQL Server 2025 (17.x), -N bisa o (untuk optional), m (untuk mandatory, default), atau s (untuk strict). Jika Anda tidak menyertakan -N, -Nm (untuk mandatory) adalah default. Ini adalah perubahan besar dari SQL Server 2022 (16.x) dan versi-versi sebelumnya.

  • -u File output Unicode yang dihasilkan memiliki tanda urutan Byte (BOM) Little-Endian UTF-16 yang ditulis ke dalamnya.

  • Beberapa perilaku yang disimpan untuk mempertahankan kompatibilitas dengan OSQL mungkin telah berubah, seperti perataan header kolom untuk beberapa jenis data.

  • Semua perintah harus pas pada satu baris, bahkan EXIT. Mode interaktif tidak memeriksa tanda kurung terbuka atau tanda kutip untuk perintah, dan tidak meminta baris berturut-turut. Perilaku ini berbeda dengan versi ODBC, yang memungkinkan kueri dijalankan oleh EXIT(query) untuk menjangkau beberapa baris.

Koneksi dari utilitas sqlcmd (Go) terbatas pada koneksi TCP. Pipa yang diberi nama saat ini tidak didukung di driver go-mssqldb.

Peningkatan

  • :Connectmemiliki parameter opsional -G untuk memilih salah satu metode autentikasi untuk Azure SQL Database - SqlAuthentication, , ActiveDirectoryDefault, ActiveDirectoryIntegratedActiveDirectoryServicePrincipal, ActiveDirectoryManagedIdentity, ActiveDirectoryPassword. Untuk informasi selengkapnya, lihat Mengautentikasi dengan ID Microsoft Entra di sqlcmd. Jika -G tidak disediakan, Keamanan terintegrasi atau autentikasi SQL Server digunakan, tergantung pada keberadaan -U parameter nama pengguna.

  • Parameter baris perintah --driver-logging-level memungkinkan Anda melihat log dari driver go-mssqldb. Gunakan 64 untuk melihat semua jejak.

  • sqlcmd (Go) dapat mencetak hasil menggunakan format vertikal. Gunakan sakelar -F vertical baris perintah untuk mengaturnya. Variabel SQLCMDFORMAT pembuatan skrip juga mengontrolnya.

    Catatan

    Ini berbeda dari -F sakelar untuk sqlcmd (ODBC), yang digunakan dengan -N untuk menentukan nama host dalam sertifikat.

Opsi baris perintah

Tabel berikut mencantumkan opsi baris perintah yang tersedia di sqlcmd, dan sistem operasi mana yang mereka dukung.

Opsi pada baris perintah Didukung pada Windows Didukung di Linux dan macOS
Opsi terkait login
-Sebuah Ya Tidak.
-C Ya Ya
-d db_name Ya Ya
-D Ya Ya
- Aku login_timeout Ya Ya
-E Ya Ya
-g Ya Ya
-G Ya Ya
-H workstation_name Ya Ya
-j Ya Ya
-K maksud_aplikasi Ya Ya
-M multisubnet_failover Ya Ya
-N Ya Ya
kata sandi-P Ya Ya
-S [protocol:]server[\instance_name][,port] Ya Ya
-U login_id Ya Ya
-z new_password Ya Ya
-Z new_password Ya Ya
Opsi input/output
-f codepage | i:codepage[,o:codepage] | o:codepage[,i:codepage] Ya Ya
-i input_file[,input_file2...] Ya Ya
-o output_file (berkas keluaran) Ya Ya
-r[0 | 1] Ya Ya
-R Ya Ya
-u Ya Ya
Opsi pelaksanaan kueri
-e Ya Ya
-Saya Ya Ya
-q "kueri baris perintah" Ya Ya
-Q "kueri baris perintah" Ya Ya
-t query_timeout Ya Ya
-v var = value [ var = value... ] Ya Tidak.
-x Ya Ya
Opsi format
-h header Ya Ya
-k [1 | 2] Ya Ya
-s col_separator Ya Ya
-w screen_width Ya Ya
-W Ya Ya
-y lebar_tampilan_tipe_panjang_variabel Ya Ya
-Y lebar_tampilan_tipe_panjang_tetap Ya Ya
Opsi pelaporan kesalahan
-b Ya Ya
-m error_level Ya Ya
- V error_severity_level Ya Ya
Opsi lain-lain
-a ukuran_paket Ya Ya
-c batch_terminator Ya Ya
-L[c] Ya Tidak.
-p[1] Ya Ya
-X[1] Ya Ya
-? Ya Ya

-Sebuah

Berlaku untuk: Windows saja. Tidak mendukung Linux dan macOS.

Masuk ke SQL Server dengan koneksi administrator khusus (DAC). Koneksi semacam ini digunakan untuk memecahkan masalah server. Koneksi ini hanya berfungsi dengan komputer server yang mendukung DAC. Jika DAC tidak tersedia, sqlcmd menghasilkan pesan kesalahan, lalu keluar. Untuk informasi selengkapnya tentang DAC, lihat Koneksi diagnostik untuk administrator database. Opsi -A tidak didukung dengan -G opsi . Saat menyambungkan ke Azure SQL Database menggunakan -A, Anda harus menjadi administrator di server SQL logis. DAC tidak tersedia untuk administrator Microsoft Entra.

Catatan

Untuk informasi tentang cara membuat koneksi administrator khusus (DAC) di macOS atau Linux, lihat Panduan Pemrograman.

-C

Opsi ini digunakan oleh klien untuk mengonfigurasinya untuk secara implisit mempercayai sertifikat server tanpa validasi. Opsi ini setara dengan opsi TRUSTSERVERCERTIFICATE = trueADO.NET .

Untuk utilitas sqlcmd (Go), kondisi berikut juga berlaku:

  • Jika -N dan -C tidak disediakan, sqlcmd menegosiasikan autentikasi dengan server tanpa memvalidasi sertifikat server.
  • Jika -N disediakan tetapi -C tidak, sqlcmd memerlukan validasi sertifikat server. false Nilai untuk enkripsi mungkin masih menyebabkan enkripsi paket login.
  • Jika keduanya -N dan -C disediakan, sqlcmd menggunakan nilainya untuk negosiasi enkripsi.

-d db_name

USE <db_name> Mengeluarkan instruksi ketika memulai sqlcmd. Opsi ini mengatur variabel pemrograman sqlcmdSQLCMDDBNAME. Parameter ini menentukan database awal. Defaultnya adalah pengaturan database bawaan dari login Anda. Jika database tidak ada, pesan kesalahan dihasilkan dan sqlcmd keluar.

-D

Menginterpretasikan nama server yang disediakan ke -S sebagai DSN alih-alih nama host. Untuk informasi selengkapnya, lihat Dukungan DSN di sqlcmd dan bcp.

Catatan

Opsi -D ini hanya tersedia di klien Linux dan macOS. Pada klien Windows, ini mengacu pada opsi usang yang telah dihapus, dan diabaikan.

- Aku login_timeout

Menentukan jumlah detik sebelum login sqlcmd ke driver ODBC habis waktu ketika mencoba menyambungkan ke server. Opsi ini mengatur variabel pemrograman sqlcmdSQLCMDLOGINTIMEOUT. Batas waktu default untuk masuk ke sqlcmd adalah 8 detik. Ketika menggunakan opsi -G untuk menyambungkan ke Azure SQL Database atau Azure Synapse Analytics dan mengautentikasi menggunakan ID Microsoft Entra, batas waktu habis dianjurkan setidaknya 30 detik. Waktu batas masuk harus berupa angka antara 0 dan 65534. Jika nilai yang disediakan bukan numerik, atau tidak termasuk dalam rentang tersebut, sqlcmd menghasilkan pesan kesalahan. Nilai 0 menentukan batas waktu menjadi tak terbatas.

-E

Menggunakan koneksi tepercaya alih-alih menggunakan nama pengguna dan kata sandi untuk masuk ke SQL Server. Secara default, tanpa -E ditentukan, sqlcmd menggunakan opsi koneksi tepercaya.

Opsi -E mengabaikan kemungkinan pengaturan variabel lingkungan untuk nama pengguna dan kata sandi seperti SQLCMDPASSWORD. -E Jika opsi digunakan bersama dengan -U opsi atau -P opsi , pesan kesalahan akan dihasilkan.

Catatan

Untuk informasi selengkapnya tentang membuat koneksi tepercaya yang menggunakan autentikasi terintegrasi dari klien Linux atau macOS, lihat Menggunakan Autentikasi Terintegrasi.

-g

Mengatur pengaturan Enkripsi Kolom ke Enabled. Untuk informasi selengkapnya, lihat Always Encrypted. Hanya kunci master yang disimpan di Penyimpanan Sertifikat Windows yang didukung. Opsi ini -g memerlukan setidaknya sqlcmd versi 13.1. Untuk menentukan versi Anda, jalankan sqlcmd -?.

-G

Opsi ini digunakan oleh klien saat menyambungkan ke Azure SQL Database atau Azure Synapse Analytics, untuk menentukan bahwa pengguna diautentikasi dengan autentikasi Microsoft Entra. Opsi ini mengatur variabel pemrograman sqlcmdSQLCMDUSEAAD = true. Opsi ini -G memerlukan setidaknya sqlcmd versi 13.1. Untuk menentukan versi Anda, jalankan sqlcmd -?. Untuk informasi selengkapnya, lihat Autentikasi Microsoft Entra untuk Azure SQL. Opsi -A tidak didukung dengan -G opsi .

Opsi -G ini hanya berlaku untuk Azure SQL Database dan Azure Synapse Analytics.

Autentikasi interaktif Microsoft Entra saat ini tidak didukung di Linux atau macOS. Autentikasi terintegrasi Microsoft Entra memerlukan Unduh Driver ODBC untuk SQL Server versi 17.6.1 atau yang lebih tinggi dan lingkungan Kerberos yang dikonfigurasi dengan benar.

Untuk informasi selengkapnya tentang autentikasi Microsoft Entra, lihat Mengautentikasi dengan ID Microsoft Entra di sqlcmd.

-H workstation_name

Nama stasiun kerja. Opsi ini mengatur variabel pemrograman sqlcmdSQLCMDWORKSTATION. Nama stasiun kerja tercantum di kolom hostname lihat katalog sys.sysprocesses, dan dapat dikembalikan menggunakan prosedur tersimpan sp_who. Jika opsi ini tidak ditentukan, defaultnya adalah nama komputer saat ini. Nama ini dapat digunakan untuk mengidentifikasi sesi sqlcmd yang berbeda.

-j

Mencetak pesan kesalahan mentah ke layar.

-K tujuan_aplikasi

Menyatakan jenis beban kerja aplikasi saat menyambungkan ke server. Satu-satunya nilai yang saat ini didukung adalah ReadOnly. Jika -K tidak ditentukan, sqlcmd tidak mendukung konektivitas ke replika sekunder dalam grup ketersediaan. Untuk informasi selengkapnya, lihat Memindahkan beban kerja hanya-baca ke replika sekunder grup ketersediaan Always On.

Catatan

-K tidak didukung di SUSE Linux Enterprise Server (SLES). Namun, Anda dapat menentukan ApplicationIntent=ReadOnly kata kunci dalam file DSN yang diteruskan ke sqlcmd. Untuk informasi selengkapnya, lihat Dukungan DSN di sqlcmd dan bcp nanti di artikel ini.

Untuk informasi selengkapnya, lihat Ketersediaan tinggi dan pemulihan bencana di Linux dan macOS.

-M multisubnet_failover

Selalu tentukan -M saat menyambungkan ke pendengar grup ketersediaan SQL Server atau Instans Kluster Failover SQL Server. -M menyediakan deteksi dan koneksi yang lebih cepat ke server aktif (saat ini). Jika -M tidak ditentukan, -M tidak aktif.

Untuk informasi selengkapnya, lihat:

Catatan

-M tidak didukung di SUSE Linux Enterprise Server (SLES). Namun, Anda dapat menentukan MultiSubnetFailover=Yes kata kunci dalam file DSN yang diteruskan ke sqlcmd. Untuk informasi selengkapnya, lihat Dukungan DSN di sqlcmd dan bcp nanti di artikel ini.

Untuk informasi selengkapnya, lihat Ketersediaan tinggi dan pemulihan bencana di Linux dan macOS.

-N

Opsi ini digunakan oleh klien untuk meminta koneksi terenkripsi.

Untuk utilitas sqlcmd (Go), -N ambil nilai string yang bisa menjadi salah satu dari true, false, atau disable untuk menentukan pilihan enkripsi. (default sama dengan menghilangkan parameter):

Catatan

Di Linux dan macOS, [s|m|o] ditambahkan dalam sqlcmd 18.0. -N dapat berupa o (untuk optional), m (untuk mandatory, default), atau s (untuk strict). Di Pratinjau SQL Server 2025 (17.x), jika Anda tidak menyertakan -N, -Nm (untuk mandatory) adalah default. Ini adalah perubahan signifikan dari SQL Server 2022 (16.x) dan versi yang lebih lama, di mana -No merupakan nilai default.

  • Jika -N dan -C tidak disediakan, sqlcmd menegosiasikan autentikasi dengan server tanpa memvalidasi sertifikat server.

  • Jika -N disediakan tetapi -C tidak, sqlcmd memerlukan validasi sertifikat server. false Nilai untuk enkripsi mungkin masih menyebabkan enkripsi paket login.

  • Jika keduanya -N dan -C disediakan, sqlcmd menggunakan nilainya untuk negosiasi enkripsi.

  • Di sqlcmd (ODBC), gunakan -F untuk menentukan nama host dalam sertifikat. Contohnya:

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

    Catatan

    Ini berbeda dengan -F opsi untuk sqlcmd (Go), yang digunakan untuk mencetak hasil menggunakan format vertikal.

-P kata sandi

Kata sandi yang ditentukan pengguna. Kata sandi sensitif terhadap huruf besar dan kecil. Jika opsi -U digunakan, opsi -P tidak digunakan, dan variabel lingkungan SQLCMDPASSWORD tidak diatur, sqlcmd akan meminta kata sandi kepada pengguna. Kami tidak merekomendasikan penggunaan kata sandi null (kosong), tetapi Anda dapat menentukan kata sandi null dengan menggunakan sepasang tanda kutip ganda yang berdampingan untuk nilai parameter ("").

Penting

Penggunaan -P harus dianggap tidak aman. Hindari memberikan kata sandi pada baris perintah. Atau, gunakan SQLCMDPASSWORD variabel lingkungan, atau masukkan kata sandi secara interaktif dengan menghilangkan -P opsi .

Kami menyarankan agar Anda menggunakan kata sandi yang kuat.

Perintah kata sandi ditampilkan dengan mencetak permintaan kata sandi ke konsol, sebagai berikut: Password:

Input pengguna disembunyikan. Ini berarti bahwa tidak ada yang ditampilkan dan kursor tetap berada di posisi.

Variabel SQLCMDPASSWORD lingkungan memungkinkan Anda mengatur kata sandi default untuk sesi saat ini. Oleh karena itu, kata sandi tidak harus dikodekan secara permanen ke dalam file batch. Contoh berikut pertama-tama mengatur variabel SQLCMDPASSWORD di prompt perintah dan kemudian mengakses utilitas sqlcmd.

Pada prompt perintah, ketik perintah berikut. Ganti <password> dengan kata sandi yang valid.

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

Jika kombinasi nama pengguna dan kata sandi salah, pesan kesalahan akan dihasilkan.

Catatan

Variabel OSQLPASSWORD lingkungan disimpan untuk kompatibilitas mundur. Variabel SQLCMDPASSWORD lingkungan lebih diutamakan daripada OSQLPASSWORD variabel lingkungan. Ini berarti bahwa sqlcmd dan osql dapat digunakan di samping satu sama lain tanpa gangguan. Skrip lama terus berfungsi.

Jika opsi -P digunakan dengan opsi -E, pesan kesalahan akan dihasilkan.

-P Jika opsi diikuti oleh lebih dari satu argumen, pesan kesalahan dihasilkan dan program keluar.

Kata sandi yang berisi karakter khusus dapat menghasilkan pesan kesalahan. Anda harus menghindari karakter khusus saat menggunakan -P, atau menggunakan variabel lingkungan sebagai gantinya SQLCMDPASSWORD .

Di Linux dan macOS, saat digunakan dengan -G opsi tanpa -U, -P menentukan file yang berisi token akses (v17.8+). File token harus dalam format UTF-16LE (tanpa BOM).

Token akses dapat diperoleh melalui berbagai metode. Anda harus memastikan token akses benar byte-for-byte, karena dikirim as-is. Berikut ini adalah contoh perintah yang mendapatkan token akses. Perintah ini menggunakan perintah Azure CLI dan Linux dan menyimpannya ke file dalam format yang tepat. Jika pengodean default sistem atau terminal Anda bukan ASCII atau UTF-8, Anda mungkin perlu menyesuaikan opsi iconv. Pastikan untuk mengamankan file yang dihasilkan dengan hati-hati dan menghapusnya saat tidak lagi diperlukan.

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 [protocol:]server[\instance_name][,port]

Menentukan instans SQL Server yang akan disambungkan. Ini mengatur variabel scripting sqlcmdSQLCMDSERVER.

Tentukan server_name untuk menyambungkan ke instans default SQL Server di komputer server tersebut. Tentukan server_name[\instance_name] untuk menyambungkan ke instans SQL Server bernama di komputer server tersebut. Jika tidak ada komputer server yang ditentukan, sqlcmd tersambung ke instans default SQL Server di komputer lokal. Opsi ini diperlukan ketika Anda menjalankan sqlcmd dari komputer jarak jauh pada jaringan.

protokol dapat berupa tcp (TCP/IP), lpc (memori bersama), atau np (pipa bernama).

Jika Anda tidak menentukan server_name[\instance_name] saat memulai sqlcmd, SQL Server akan memeriksa dan menggunakan SQLCMDSERVER variabel lingkungan.

Catatan

Variabel OSQLSERVER lingkungan disimpan untuk kompatibilitas mundur. Variabel SQLCMDSERVER lingkungan lebih diutamakan daripada OSQLSERVER variabel lingkungan. Ini berarti bahwa sqlcmd dan osql dapat digunakan di samping satu sama lain tanpa gangguan. Skrip lama terus berfungsi.

Driver ODBC di Linux dan macOS memerlukan -S. Satu-satunya nilai protokol yang valid adalah tcp.

-U login_id

Nama login atau nama pengguna yang terdapat dalam database. Untuk pengguna database terisolasi, Anda harus menyediakan opsi nama database (-d).

Catatan

Variabel OSQLUSER lingkungan disimpan untuk kompatibilitas mundur. Variabel SQLCMDUSER lingkungan lebih diutamakan daripada OSQLUSER variabel lingkungan. Ini berarti bahwa sqlcmd dan osql dapat digunakan di samping satu sama lain tanpa gangguan. Skrip lama terus berfungsi.

Jika Anda tidak menentukan -U opsi atau -P opsi , sqlcmd mencoba menyambungkan dengan menggunakan mode Autentikasi Windows. Autentikasi didasarkan pada akun Windows pengguna yang menjalankan sqlcmd.

-U opsi jika digunakan dengan opsi -E (yang dijelaskan nanti dalam artikel ini), sebuah pesan kesalahan akan dihasilkan. -U Jika opsi diikuti oleh lebih dari satu argumen, pesan kesalahan dihasilkan dan program keluar.

-z new_password

Ubah kata sandi. Ganti <oldpassword> dengan kata sandi lama, dan <newpassword> dengan kata sandi baru.

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

-Z new_password

Ubah kata sandi dan keluar. Ganti <oldpassword> dengan kata sandi lama, dan <newpassword> dengan kata sandi baru.

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

Pilihan input/output

-f codepage | i:codepage[,o:codepage] | o:codepage[,i:codepage]

Menentukan halaman kode input dan output. Nomor codepage adalah nilai numerik yang menentukan halaman kode Windows yang diinstal.

Aturan konversi halaman kode:

  • Jika tidak ada halaman kode yang ditentukan, sqlcmd menggunakan halaman kode saat ini untuk file input dan output, kecuali file input adalah file Unicode, dalam hal ini tidak diperlukan konversi.

  • sqlcmd secara otomatis mengenali file input Unicode berformat big-endian maupun little-endian. Jika opsi -u ditentukan, outputnya selalu berupa Unicode little endian.

  • Jika tidak ada file output yang ditentukan, halaman kode output adalah halaman kode konsol. Pendekatan ini memungkinkan output ditampilkan dengan benar di konsol.

  • Beberapa file input diasumsikan dari halaman kode yang sama. File input Unicode dan non-Unicode dapat dicampur.

Masukkan chcp di prompt perintah untuk memverifikasi halaman kode .cmd.exe

Catatan

Di Linux, nomor codepage adalah nilai numerik yang menentukan halaman kode Linux yang diinstal (tersedia sejak 17.5.1.1).

-i input_file[,input_file2...]

Mengidentifikasi file yang berisi batch pernyataan Transact-SQL atau prosedur tersimpan. Beberapa file mungkin ditentukan yang dibaca dan diproses secara berurutan. Jangan gunakan spasi apa pun di antara nama file. sqlcmd memeriksa terlebih dahulu untuk melihat apakah semua file yang ditentukan ada. Jika satu atau beberapa file tidak ada, sqlcmd akan keluar. Dan -i-Q/-q opsinya saling eksklusif.

Catatan

Jika Anda menggunakan -i opsi diikuti oleh satu atau beberapa parameter tambahan, Anda harus menggunakan spasi antara parameter dan nilai . Ini adalah masalah yang diketahui dalam sqlcmd (Go).

Contoh jalur:

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

Jalur file yang berisi spasi harus diapit dalam tanda kutip.

Opsi ini dapat digunakan lebih dari sekali:

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

-o output_file

Mengidentifikasi file yang menerima output dari sqlcmd.

Jika -u ditentukan, output_file disimpan dalam format Unicode. Jika nama file tidak valid, pesan kesalahan dibuat, dan sqlcmd keluar. sqlcmd tidak mendukung penulisan bersamaan dari beberapa proses sqlcmd ke file yang sama. Output file rusak atau salah. Opsi -f ini juga relevan dengan format file. File ini dibuat jika belum ada. File dengan nama yang sama dari sesi sqlcmd sebelumnya ditimpa. File yang ditentukan di sini bukan stdout file. Jika file stdout ditentukan, file tersebut tidak digunakan.

Contoh jalur:

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

Jalur file yang berisi spasi harus diapit dalam tanda kutip.

-r[0 | 1]

Mengalihkan output pesan kesalahan ke layar (stderr). Jika Anda tidak menentukan parameter atau jika Anda menentukan 0, hanya pesan kesalahan yang memiliki tingkat keparahan 11 atau lebih tinggi yang dialihkan. Jika Anda menentukan 1, semua output pesan kesalahan termasuk PRINT dialihkan. Opsi ini tidak berpengaruh jika Anda menggunakan -o. Secara default, pesan dikirim ke stdout.

Catatan

Untuk utilitas sqlcmd (Go), diperlukan argumen -r atau 0.

-R

Berlaku untuk: ODBC sqlcmd saja.

Menyebabkan sqlcmd melokalisasi kolom numerik, mata uang, tanggal, dan waktu yang diambil dari SQL Server berdasarkan lokal klien. Secara default, kolom ini ditampilkan menggunakan pengaturan regional server.

Catatan

Di Linux dan macOS, -R saat ini hanya menggunakan pemformatan Bahasa Inggris AS en_US.

-u

Menentukan bahwa output_file disimpan dalam format Unicode, terlepas dari format input_file.

Catatan

Untuk utilitas sqlcmd (Go), file output Unicode yang dihasilkan memiliki tanda urutan byte (BOM) Little-Endian UTF-16 pada file tersebut.

Opsi pelaksanaan kueri

-e

Menulis skrip input ke perangkat output standar (stdout).

-Saya

Berlaku untuk: ODBC sqlcmd saja.

Mengatur opsi koneksi SET QUOTED_IDENTIFIER ke ON. Pengaturan default adalah OFF. Untuk informasi selengkapnya, lihat MENGATUR QUOTED_IDENTIFIER.

Catatan

Untuk menonaktifkan perilaku pengidentifikasi yang dikutip di utilitas sqlcmd (Go), tambahkan SET QUOTED IDENTIFIER OFF pada skrip Anda.

-q "kueri cmdline"

Menjalankan kueri saat sqlcmd dimulai, tetapi tidak keluar dari sqlcmd saat kueri selesai. Beberapa kueri yang dibatasi titik koma dapat dijalankan. Gunakan tanda kutip di sekitar kueri, seperti yang diperlihatkan dalam contoh berikut.

Pada command prompt, ketik:

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;"

Penting

Jangan gunakan terminator GO dalam kueri.

Jika -b ditentukan bersama dengan opsi ini, sqlcmd akan keluar jika terjadi kesalahan. -b dijelaskan di tempat lain dalam artikel ini.

-Q "kueri baris perintah"

Menjalankan kueri ketika sqlcmd dimulai dan kemudian segera keluar dari sqlcmd. Beberapa kueri yang dipisahkan oleh titik koma dapat dijalankan.

Gunakan tanda kutip di sekitar kueri, seperti yang diperlihatkan dalam contoh berikut.

Pada command prompt, ketik:

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;"

Penting

Jangan gunakan terminator GO dalam kueri.

Jika -b ditentukan bersama dengan opsi ini, sqlcmd akan keluar jika terjadi kesalahan. -b dijelaskan di tempat lain dalam artikel ini.

-t query_timeout

Menentukan jumlah detik sebelum perintah (atau pernyataan Transact-SQL) berakhir waktu. Opsi ini mengatur variabel scripting sqlcmdSQLCMDSTATTIMEOUT. Jika nilai query_timeout tidak ditentukan, perintah tidak kehabisan waktu. query_timeout harus berupa angka antara 1 dan 65534. Jika nilai yang disediakan bukan numerik atau tidak termasuk dalam rentang tersebut, sqlcmd menghasilkan pesan kesalahan.

Catatan

Nilai waktu habis aktual dapat bervariasi dari nilai query_timeout yang ditentukan selama beberapa detik.

-v var = value [ var = value... ]

Berlaku untuk: Windows saja. Tidak mendukung Linux dan macOS.

Membuat variabel pembuatan skrip sqlcmd yang dapat digunakan dalam skrip sqlcmd.

Sertakan nilai dalam tanda kutip jika nilai berisi spasi. Anda dapat menentukan beberapa <var>="<value>" nilai. Jika ada kesalahan dalam salah satu nilai yang ditentukan, sqlcmd menghasilkan pesan kesalahan lalu keluar.

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

Menyebabkan sqlcmd mengabaikan variabel pembuatan skrip. Parameter ini berguna ketika skrip berisi banyak pernyataan INSERT yang mungkin berisi string yang memiliki format yang sama dengan variabel reguler, seperti $(<variable_name>).

Opsi format

-h header

Menentukan jumlah baris yang akan dicetak di antara judul kolom. Defaultnya adalah mencetak judul satu kali untuk setiap set hasil kueri. Opsi ini mengatur variabel pemrograman sqlcmdSQLCMDHEADERS. Gunakan -1 untuk menentukan bahwa header tidak dicetak. Nilai apa pun yang tidak valid menyebabkan sqlcmd menghasilkan pesan kesalahan lalu keluar.

-k [1 | 2]

Menghapus semua karakter kontrol, seperti tab dan karakter baris baru dari output. Parameter ini mempertahankan pemformatan kolom saat data dikembalikan.

  • -k menghapus karakter kontrol.
  • -k1 mengganti setiap karakter kontrol dengan spasi.
  • -k2 mengganti karakter kontrol berturut-turut dengan satu spasi.

-s col_separator

Menentukan karakter pemisah kolom. Defaultnya adalah spasi kosong. Opsi ini mengatur variabel pemrograman sqlcmdSQLCMDCOLSEP. Untuk menggunakan karakter yang memiliki arti khusus untuk sistem operasi, seperti ampersand (&) atau titik koma (;), sertakan karakter dalam tanda kutip ("). Pemisah kolom dapat berupa karakter 8-bit apa pun.

-w screen_width

Menentukan lebar layar untuk output. Opsi ini mengatur variabel pemrograman sqlcmdSQLCMDCOLWIDTH. Lebar kolom harus angka yang lebih besar dari 8 dan kurang dari 65536. Jika lebar kolom yang ditentukan tidak termasuk dalam rentang tersebut, sqlcmd menghasilkan pesan kesalahan. Lebar default adalah 80 karakter. Ketika baris output melebihi lebar kolom yang ditentukan, garis tersebut akan dibungkus ke baris berikutnya.

-W

Opsi ini menghapus spasi di akhir dari kolom. Gunakan opsi ini bersama dengan -s opsi saat menyiapkan data yang akan diekspor ke aplikasi lain. Tidak dapat digunakan dengan opsi -y atau -Y.

-y lebar_tampilan_tipe_panjang_variabel

Menetapkan variabel pemrograman `sqlcmd`. Default adalah 256. Ini membatasi jumlah karakter yang dikembalikan untuk jenis data panjang variabel besar:

  • varchar(maks)
  • nvarchar(maks)
  • varbinary(max)
  • xml
  • jenis data yang ditentukan pengguna (UDT)
  • Teks
  • ntext
  • gambar

UDT dapat memiliki panjang tetap tergantung pada implementasinya. Jika panjang UDT dengan panjang tetap ini lebih pendek daripada display_width, nilai UDT yang dikembalikan tidak terpengaruh. Namun, jika panjangnya lebih panjang dari display_width, output dipotong.

Perhatian

-y 0 Gunakan opsi dengan sangat hati-hati, karena dapat menyebabkan masalah performa yang signifikan pada server dan jaringan, tergantung pada ukuran data yang dikembalikan.

-Y lebar_tampilan_tipe_panjang_tetap

Menetapkan variabel pemrograman `sqlcmd`. Defaultnya adalah 0 (tidak terbatas). Membatasi jumlah karakter yang dikembalikan untuk jenis data berikut:

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

Opsi pelaporan kesalahan

-b

Menentukan bahwa sqlcmd keluar dan mengembalikan DOS ERRORLEVEL nilai saat terjadi kesalahan. Nilai yang dikembalikan ke ERRORLEVEL variabel adalah 1 ketika pesan kesalahan SQL Server memiliki tingkat keparahan yang lebih besar dari 10; jika tidak, nilai yang dikembalikan adalah 0. Jika opsi -V diatur, selain -b, sqlcmd tidak akan melaporkan kesalahan jika tingkat keparahan lebih rendah daripada nilai yang ditetapkan menggunakan -V. File batch prompt perintah dapat menguji nilai ERRORLEVEL dan menangani kesalahan dengan tepat. sqlcmd tidak melaporkan kesalahan untuk tingkat keparahan 10 (pesan informasi).

Jika skrip sqlcmd berisi komentar yang salah, kesalahan sintaks, atau tidak memiliki variabel pembuatan skrip, yang ERRORLEVEL dikembalikan adalah 1.

-m error_level

Mengontrol pesan kesalahan mana yang dikirim ke stdout. Pesan yang memiliki tingkat keparahan lebih besar dari atau sama dengan tingkat ini dikirim. Ketika nilai ini diatur ke -1, semua pesan termasuk pesan informasi, dikirim. Spasi tidak diperbolehkan antara -m dan -1. Misalnya, -m-1 valid, dan -m -1 tidak.

Opsi ini juga mengatur variabel skrip sqlcmdSQLCMDERRORLEVEL. Variabel ini memiliki nilai default 0.

-V tingkat_keparahan_kesalahan

Mengontrol tingkat keparahan yang digunakan untuk mengatur ERRORLEVEL variabel. Pesan kesalahan yang memiliki tingkat keparahan lebih besar dari atau sama dengan set ERRORLEVELnilai ini . Nilai yang kurang dari 0 dilaporkan sebagai 0. File Batch dan CMD dapat digunakan untuk menguji nilai ERRORLEVEL variabel.

Opsi lain-lain

-a packet_size

Meminta paket dengan ukuran yang berbeda. Opsi ini mengatur variabel pemrograman sqlcmdSQLCMDPACKETSIZE. packet_size harus berupa nilai antara 512 dan 32767. Default adalah 4096. Ukuran paket yang lebih besar dapat meningkatkan performa untuk eksekusi skrip yang memiliki banyak pernyataan Transact-SQL antar GO perintah. Anda dapat meminta ukuran paket yang lebih besar. Namun, jika permintaan ditolak, sqlcmd menggunakan default server untuk ukuran paket.

-c batch_terminator

Menentukan penanda akhir batch. Secara default, perintah dihentikan dan dikirim ke SQL Server dengan mengetik kata GO pada baris itu sendiri. Saat Anda mengatur kembali terminator batch, jangan gunakan kata kunci atau karakter yang merupakan cadangan Transact-SQL yang memiliki arti khusus untuk sistem operasi, bahkan jika diawali oleh garis miring terbalik.

-L[c]

Berlaku untuk: Windows saja. Tidak mendukung Linux dan macOS.

Mencantumkan komputer server yang dikonfigurasi secara lokal, dan nama komputer server yang disiarkan di jaringan. Parameter ini tidak dapat digunakan dalam kombinasi dengan parameter lain. Jumlah maksimum komputer server yang dapat dicantumkan adalah 3000. Jika daftar server dipotong karena ukuran buffer, pesan peringatan ditampilkan.

Catatan

Karena sifat penyiaran di jaringan, sqlcmd mungkin tidak menerima respons tepat waktu dari semua server. Oleh karena itu, daftar server yang dikembalikan dapat bervariasi untuk setiap pemanggilan opsi ini.

Jika parameter c opsional ditentukan, output muncul tanpa Servers: baris header, dan setiap baris server ditampilkan tanpa spasi di depannya. Presentasi ini disebut sebagai output bersih. Hasil keluaran yang bersih meningkatkan performa pemrosesan bahasa skrip.

-p[1]

Mencetak statistik kinerja untuk setiap set hasil. Tampilan berikut adalah contoh format untuk statistik performa:

Network packet size (bytes): n

x xact[s]:

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

Mana:

  • x = Jumlah transaksi yang diproses oleh SQL Server.
  • t1 = Total waktu untuk semua transaksi.
  • t2 = Waktu rata-rata untuk satu transaksi.
  • t3 = Jumlah rata-rata transaksi per detik.

Semua waktu dalam milidetik.

Jika parameter opsional 1 ditentukan, maka format output statistik akan berupa format yang dipisahkan dengan titik dua sehingga mudah diimpor ke spreadsheet atau diproses oleh skrip.

Jika parameter opsional adalah nilai apa pun selain 1, kesalahan dihasilkan dan sqlcmd keluar.

-X[1]

Menonaktifkan perintah yang mungkin membahayakan keamanan sistem saat sqlcmd dijalankan dari file batch. Perintah yang dinonaktifkan masih dikenali; sqlcmd mengeluarkan pesan peringatan dan berlanjut. Jika parameter 1 opsional ditentukan, sqlcmd menghasilkan pesan kesalahan lalu keluar. Perintah berikut dinonaktifkan saat -X opsi digunakan:

  • ED
  • !! perintah

-X Jika opsi ditentukan, opsi tersebut mencegah variabel lingkungan diteruskan ke sqlcmd. Ini juga mencegah skrip startup yang ditentukan dengan menggunakan SQLCMDINI variabel scripting agar tidak dijalankan. Untuk informasi selengkapnya tentang variabel pembuatan skrip sqlcmd , lihat sqlcmd - Gunakan dengan variabel pembuatan skrip.

-?

Menampilkan versi sqlcmd dan ringkasan sintaks opsi sqlcmd .

Catatan

Di macOS, jalankan sqlcmd '-?' (dengan tanda kutip) sebagai gantinya.

Keterangan

Opsi tidak harus digunakan dalam urutan yang diperlihatkan di bagian sintaks.

Catatan

Jika Anda menggunakan -i opsi diikuti oleh satu atau beberapa parameter tambahan, Anda harus menggunakan spasi antara parameter dan nilai . Ini adalah masalah yang diketahui dalam sqlcmd (Go).

Saat beberapa hasil dikembalikan, sqlcmd mencetak baris kosong di antara setiap hasil yang diatur dalam batch. Selain itu, <x> rows affected pesan tidak muncul jika tidak berlaku untuk pernyataan yang dieksekusi.

Untuk menggunakan sqlcmd secara interaktif, ketik sqlcmd prompt perintah dengan satu atau beberapa opsi yang dijelaskan sebelumnya dalam artikel ini. Untuk informasi selengkapnya, lihat Menggunakan sqlcmd.

Catatan

Opsi -l, -Q, -Z atau -i menyebabkan sqlcmd keluar setelah eksekusi.

Panjang total baris perintah sqlcmd di lingkungan perintah (misalnya cmd.exe atau bash), termasuk semua argumen dan variabel yang diperluas, ditentukan oleh sistem operasi yang mendasar.

Dukungan DSN dalam sqlcmd dan bcp

Anda dapat menentukan nama sumber data (DSN) alih-alih nama server di sqlcmd atau bcp -S opsi (atau sqlcmd :Connect perintah) jika Anda menentukan -D. -D menyebabkan sqlcmd atau bcp tersambung ke server yang ditentukan dalam DSN dengan -S opsi .

DSN sistem disimpan dalam odbc.ini file di direktori ODBC SysConfigDir (/etc/odbc.ini pada penginstalan standar). DSN pengguna disimpan di .odbc.ini direktori beranda pengguna (~/.odbc.ini).

Pada sistem Windows, DSN Sistem dan Pengguna disimpan dalam registri dan dikelola melalui odbcad32.exe. bcp dan sqlcmd tidak mendukung DSN file.

Lihat Kata Kunci dan Atribut DSN serta String Koneksi untuk daftar entri yang didukung oleh driver.

Dalam DSN, hanya entri yang DRIVER diperlukan, tetapi untuk terhubung ke server jarak jauh, sqlcmd atau bcp membutuhkan nilai dalam SERVER elemen . SERVER Jika elemen kosong atau tidak ada di DSN, sqlcmd dan bcp mencoba menyambungkan ke instans default pada sistem lokal.

Saat Anda menggunakan bcp pada sistem Windows, SQL Server 2017 (14.x) dan versi yang lebih lama memerlukan driver SQL Native Client 11 (sqlncli11.dll), sementara SQL Server 2019 (15.x) dan versi yang lebih baru memerlukan Driver Microsoft ODBC 17 untuk driver SQL Server (msodbcsql17.dll).

Jika opsi yang sama ditentukan di baris perintah DSN dan sqlcmd atau bcp , opsi baris perintah akan mengambil alih nilai yang digunakan dalam DSN. Misalnya, jika DSN memiliki DATABASE entri dan baris perintah sqlcmd menyertakan -d, nilai yang diteruskan ke -d digunakan. Jika Trusted_Connection=yes ditentukan dalam DSN, autentikasi Kerberos digunakan; nama pengguna (-U) dan kata sandi (-P), jika disediakan, diabaikan.

Skrip yang ada yang memanggil isql dapat dimodifikasi untuk menggunakan sqlcmd dengan menentukan alias berikut: alias isql="sqlcmd -D".

praktik terbaik sqlcmd

Gunakan praktik berikut untuk membantu memaksimalkan keamanan dan efisiensi.

  • Gunakan Keamanan Terpadu.

  • Gunakan -X[1] di lingkungan otomatis.

  • Amankan file input dan output dengan menggunakan izin sistem file yang sesuai.

  • Untuk meningkatkan performa, lakukan sebanyak mungkin dalam satu sesi sqlcmd , bukan dalam serangkaian sesi.

  • Atur nilai batas waktu untuk eksekusi batch atau kueri menjadi lebih tinggi dari yang Anda perkirakan diperlukan untuk menyelesaikan eksekusi tersebut.

Gunakan praktik berikut untuk membantu memaksimalkan kebenaran:

  • Gunakan -V 16 untuk mencatat pesan keparahan tingkat 16 apa pun. Pesan tingkat keparahan 16 menunjukkan kesalahan umum yang dapat dikoreksi oleh pengguna.

  • Periksa kode keluar dan variabel DOS ERRORLEVEL setelah proses selesai. sqlcmd mengembalikan 0 secara normal, jika tidak, ia mengatur ERRORLEVEL seperti yang dikonfigurasi oleh -V. Dengan kata lain, ERRORLEVEL seharusnya tidak diharapkan menjadi nilai yang sama dengan nomor kesalahan yang dilaporkan dari SQL Server. Nomor kesalahan adalah nilai khusus SQL Server yang sesuai dengan fungsi sistem @@ERROR. ERRORLEVEL adalah nilai khusus sqlcmd untuk menunjukkan mengapa sqlcmd dihentikan, dan nilainya dipengaruhi oleh menentukan -b argumen baris perintah.

Menggunakan -V 16 dalam kombinasi dengan memeriksa kode keluar dan DOS ERRORLEVEL dapat membantu menangkap kesalahan di lingkungan otomatis, terutama gerbang kualitas sebelum rilis produksi.