Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistem Platform Analitik (PDW)
Database SQL di Microsoft Fabric
Gunakan utilitas sqlcmd untuk memasukkan pernyataan Transact-SQL, prosedur sistem, dan file skrip melalui berbagai mode:
- Pada prompt perintah.
- Di Editor Kueri dalam mode SQLCMD.
- Dalam file skrip Windows.
- Dalam langkah pekerjaan sistem operasi (
cmd.exe) pada pekerjaan SQL Server Agent.
Note
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-toolsdari 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
SQL Server 2025 (17.x) memperkenalkan dukungan TDS 8.0 untuk utilitas sqlcmd .
Syntax
Dalam artikel ini, istilah opsi, parameter, argumen baris perintah, dan sakelar dapat digunakan secara bergantian.
sqlcmd (Go) memiliki dua mode bantuan: --help untuk sub-perintah modern dan -? untuk bendera yang kompatibel dengan ODBC.
Perintah modern (--help)
Usage:
sqlcmd [flags]
sqlcmd [command]
Examples:
# Install/Create, Query, Uninstall SQL Server
sqlcmd create mssql --accept-eula --using https://aka.ms/AdventureWorksLT.bak
sqlcmd open ads
sqlcmd query "SELECT @@version"
sqlcmd delete
# View configuration information and connection strings
sqlcmd config view
sqlcmd config cs
Available Commands:
completion Generate the autocompletion script for the specified shell
config Modify sqlconfig files using subcommands like "sqlcmd config use-context mssql"
create Install/Create SQL Server, Azure SQL, and Tools
delete Uninstall/Delete the current context
help Help about any command
open Open tools (e.g ADS) for current context
query Run a query against the current context
start Start current context
stop Stop current context
Flags:
-?, --? help for backwards compatibility flags (-S, -U, -E etc.)
-h, --help help for sqlcmd
--sqlconfig string configuration file (default "/Users/<currentUser>/.sqlcmd/sqlconfig")
--verbosity int log level, error=0, warn=1, info=2, debug=3, trace=4 (default 2)
--version print version of sqlcmd
Use "sqlcmd [command] --help" for more information about a command.
Bendera yang kompatibel dengan ODBC (-?)
sqlcmd
-a packet_size
-A (dedicated administrator connection)
-b (terminate batch job if there is an error)
-c batch_terminator
-C (trust the server certificate)
-d db_name
-e (echo input)
-E (use trusted connection)
-F hostname_in_certificate
-g (enable column encryption)
-G (use Azure Active Directory for authentication)
-h rows_per_header
-H workstation_name
-i input_file
-I (enable quoted identifiers, always on)
-k[1 | 2] (remove or replace control characters)
-K application_intent
-l login_timeout
-L[c] (list servers, optional clean output)
-m error_level
-M multisubnet_failover (always enabled)
-N[s|m|o] (encrypt connection)
-o output_file
-P password
-q "cmdline query"
-Q "cmdline query" (and exit)
-r[0 | 1] (msgs to stderr)
-R (ignored, client regional settings not used)
-s col_separator
-S [protocol:]server[instance_name][,port]
-t query_timeout
-u (unicode output file)
-U login_id
-v var = "value"
-V error_severity_level
-w screen_width
-W (remove trailing spaces)
-x (disable variable substitution)
-X[1] (disable commands, startup script, environment variables, optional exit)
-y variable_length_type_display_width
-Y fixed_length_type_display_width
-z new_password
-Z new_password (and exit)
--authentication-method (Azure SQL authentication method)
--driver-logging-level (mssql driver log level)
--vertical (print results in vertical format)
-? (usage)
Melanggar perubahan dari sqlcmd (ODBC)
Beberapa sakelar dan perilaku berbeda dalam utilitas sqlcmd (Go). Untuk daftar bendera yang hilang paling terbaru untuk kompatibilitas mundur, lihat diskusi GitHub yang berjudul Prioritaskan implementasi bendera kompatibilitas mundur.
sqlcmd (Go) mendukung pengalihan
-P. Untuk Autentikasi SQL Server, Anda dapat menyediakan kata sandi melalui mekanisme ini:- Opsi
-Pbaris perintah - Variabel
SQLCMDPASSWORDlingkungan - Perintah
:CONNECT - Ketika diminta, ketik kata sandi untuk menyelesaikan koneksi
- Opsi
Sakelar
-rmemerlukan argumen0atau1.Sakelar
-Rdiabaikan. Runtime Go tidak menyediakan akses ke informasi lokal pengguna.Sakelar
-Idiabaikan. Pengidentifikasi yang dikutip selalu diaktifkan. Untuk menonaktifkan perilaku pengidentifikasi yang dikutip, tambahkanSET QUOTED IDENTIFIER OFFke dalam skrip Anda.Sakelar
-Mdiabaikan. sqlcmd (Go) selalu mengaktifkan failover multi-subnet.-Nmengambil nilai string untuk menentukan pilihan enkripsi, yang merupakan salah satu daris[trict], ,t[rue]/m[andatory]/yes/1o[ptional]/no/0/f[alse], atau .disable- Jika Anda tidak menyediakan
-Ndan-C, sqlcmd menegosiasikan autentikasi dengan server tanpa memvalidasi sertifikat server. - Jika Anda menyediakan
-Ntetapi tidak-C, sqlcmd memerlukan validasi sertifikat server.falseNilai untuk enkripsi mungkin masih menyebabkan enkripsi paket login. - Jika Anda menyediakan
-Ndan-C, sqlcmd menggunakan nilainya untuk negosiasi enkripsi. - Untuk informasi selengkapnya tentang negosiasi enkripsi klien/server, lihat MS-TDS PRELOGIN.
Important
Di SQL Server 2025 (17.x),
-Ndapat berupao(untukoptional),m(untukmandatory, yang merupakan default), ataus(untukstrict). Jika Anda tidak menyertakan-N,-Nm(untukmandatory) adalah default. Perilaku ini adalah perubahan mendasar dari SQL Server 2022 (16.x) dan versi yang lebih lama.- Jika Anda tidak menyediakan
-uDengan sakelar, file output Unicode yang dihasilkan diawali dengan tanda urutan byte (BOM) little-endian UTF-16.Beberapa perilaku yang disimpan untuk mempertahankan kompatibilitas dengan
OSQLmungkin 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 dari versi ODBC, yang memungkinkan kueri dijalankan olehEXIT(query)untuk menjangkau beberapa baris.
sqlcmd (Go) mendukung memori bersama, pipa bernama, dan transpor TCP. Gunakan awalan protokol yang sesuai pada nama server untuk memaksa protokol:
-
lpcuntuk memori bersama (hanya localhost) -
npuntuk pipa bernama, atau gunakan jalur pipa bernama UNC sebagai nama server -
tcpuntuk TCP
Jika Anda tidak menentukan protokol, sqlcmd mencoba memanggil dalam urutan ini: lpc>np>tcp. Saat menyambungkan ke host jarak jauh, elemen lpc dilewati.
Enhancements
:Connectmemiliki parameter opsional-Guntuk 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-Gtidak disediakan, Keamanan terintegrasi atau autentikasi SQL Server digunakan, tergantung pada keberadaan-Uparameter nama pengguna.Parameter baris perintah
--driver-logging-levelmemungkinkan Anda melihat log dari drivergo-mssqldb. Gunakan64untuk melihat semua jejak.sqlcmd (Go) dapat mencetak hasil menggunakan format vertikal. Gunakan sakelar
--verticalbaris perintah untuk mengaturnya. VariabelSQLCMDFORMATpembuatan skrip juga mengontrolnya.
Opsi baris perintah
Tabel berikut mencantumkan opsi baris perintah yang tersedia di sqlcmd, dan sistem operasi mana yang mereka dukung.
Opsi terkait login
-A
Berlaku untuk: Hanya Windows. Tidak mendukung Linux dan macOS.
Masuk ke SQL Server dengan koneksi administrator khusus (DAC). Gunakan koneksi semacam ini 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 dengan menggunakan -A, Anda harus menjadi administrator di server SQL logis. DAC tidak tersedia untuk administrator Microsoft Entra.
Note
Untuk informasi tentang cara membuat koneksi administrator khusus (DAC) di macOS atau Linux, lihat Panduan Pemrograman.
-C
Gunakan opsi ini untuk mengonfigurasi klien agar secara implisit mempercayai sertifikat server tanpa validasi. Opsi ini setara dengan opsi TRUSTSERVERCERTIFICATE = trueADO.NET .
Untuk utilitas sqlcmd (Go), kondisi berikut juga berlaku:
- Jika Anda tidak menyediakan
-Ndan-C, sqlcmd menegosiasikan autentikasi dengan server tanpa memvalidasi sertifikat server. - Jika Anda menyediakan
-Ntetapi tidak-C, sqlcmd memerlukan validasi sertifikat server.falseNilai untuk enkripsi mungkin masih menyebabkan enkripsi paket login. - Jika Anda menyediakan
-Ndan-C, 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.
Note
Opsi -D ini hanya tersedia di klien Linux dan macOS. Pada klien Windows, ini mengacu pada opsi usang yang 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. Saat menggunakan -G opsi untuk menyambungkan ke Azure SQL Database atau Azure Synapse Analytics dan mengautentikasi dengan ID Microsoft Entra, nilai batas waktu setidaknya 30 detik disarankan. Batas waktu masuk harus berupa angka antara 0 dan 65534. Jika nilainya tidak 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.
Note
Untuk informasi selengkapnya tentang membuat koneksi tepercaya yang menggunakan autentikasi terintegrasi dari klien Linux atau macOS, lihat Menggunakan Autentikasi Terintegrasi.
-F hostname_in_certificate
Menentukan Nama Umum (CN) atau Nama Alternatif Subjek (SAN) yang berbeda dan diharapkan dalam sertifikat server yang akan digunakan selama validasi sertifikat server. Tanpa opsi ini, validasi sertifikat memastikan bahwa CN atau SAN dalam sertifikat cocok dengan nama server yang Anda sambungkan. Anda dapat menggunakan parameter ini saat nama server tidak cocok dengan CN atau SAN, misalnya, saat menggunakan alias DNS.
Contohnya:
sqlcmd -S server01 -Q "SELECT TOP 100 * FROM WideWorldImporters.Sales.Orders" -A -Ns -F server01.adventure-works.com
Note
sqlcmd (Go) juga menggunakan -F untuk menentukan nama host dalam sertifikat server. Untuk mencetak hasil dalam format vertikal, sqlcmd (Go) menggunakan sakelar --vertical.
-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
Gunakan opsi ini untuk mengautentikasi dengan Microsoft Entra saat menyambungkan ke Azure SQL Database atau Azure Synapse Analytics. 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 muncul di hostname kolom sys.sysprocesses tampilan katalog, dan dapat dikembalikan dengan menggunakan prosedur tersimpan sp_who . Jika Anda tidak menentukan opsi ini, defaultnya adalah nama komputer saat ini. Gunakan nama ini untuk mengidentifikasi sesi sqlcmd yang berbeda.
-j
Mencetak pesan kesalahan mentah ke layar.
-J sertifikat_server
Berlaku untuk: sqlcmd (ODBC), Linux, dan macOS saja. Windows tidak didukung.
Menentukan jalur ke file sertifikat server. File ini cocok dengan sertifikat enkripsi koneksi server. Kecocokan dilakukan alih-alih validasi sertifikat standar (kedaluwarsa, nama host, rantai kepercayaan, dan sebagainya). Format sertifikat yang diterima adalah PEM, DER, dan CER.
Gunakan opsi ini saat menyambungkan ke server yang menggunakan sertifikat atau sertifikat yang ditandatangani sendiri yang dikeluarkan oleh otoritas sertifikat privat. Jika enkripsi diaktifkan dan validasi sertifikat gagal, koneksi gagal.
Contohnya:
sqlcmd -S server01 -Q "SELECT TOP 100 * FROM WideWorldImporters.Sales.Orders" -A -Ns -J /etc/ssl/certs/server_certificate.cer
-K application_intent
Menyatakan jenis beban kerja aplikasi saat menyambungkan ke server. Satu-satunya nilai yang saat ini didukung adalah ReadOnly. Jika Anda tidak menentukan -K, 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.
Note
-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 Anda tidak menentukan -M, -M nonaktif.
Untuk informasi selengkapnya, lihat:
- Terhubung pada listener grup ketersediaan AlwaysOn
- Referensi untuk pembuatan dan konfigurasi grup ketersediaan AlwaysOn
- Pengklusteran Failover dan grup ketersediaan AlwaysOn (SQL Server)
- Mengalihkan beban kerja baca-saja ke replika sekunder grup ketersediaan Always On
Note
-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[s|m|o]
Klien menggunakan opsi ini untuk meminta koneksi terenkripsi.
Sakelar dapat berupa -N (untuk o), optional (untuk m, default), atau mandatory (untuk s). Jika Anda tidak menyertakan -N, defaultnya adalah -Nm (untuk mandatory). Default ini adalah perubahan yang tidak kompatibel dari SQL Server 2022 (16.x) dan versi-versi sebelumnya, di mana defaultnya adalah -No.
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):
Jika Anda tidak menyediakan
-Ndan-C, sqlcmd menegosiasikan autentikasi dengan server tanpa memvalidasi sertifikat server.Jika Anda menyediakan
-Ntetapi tidak-C, sqlcmd memerlukan validasi sertifikat server.falseNilai untuk enkripsi mungkin masih menyebabkan enkripsi paket login.Jika Anda menyediakan
-Ndan-C, sqlcmd menggunakan nilainya untuk negosiasi enkripsi.
Kata sandi -P
Kata sandi yang ditentukan pengguna. Kata sandi sensitif terhadap huruf besar dan kecil. Jika Anda menggunakan -U opsi , tetapi jangan gunakan -P opsi atau atur SQLCMDPASSWORD variabel lingkungan, sqlcmd meminta kata sandi kepada pengguna. Jangan gunakan kata sandi null (kosong), tetapi Anda dapat menentukan kata sandi null dengan menggunakan sepasang tanda kutip ganda yang berdampingan untuk nilai parameter ("").
Important
Penggunaan -P tidak aman. Hindari memberikan kata sandi pada baris perintah. Atau, gunakan SQLCMDPASSWORD variabel lingkungan, atau masukkan kata sandi secara interaktif dengan menghilangkan -P opsi .
Gunakan 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.
Note
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 Anda menggunakan opsi -P dengan opsi -E, pesan kesalahan akan muncul.
Jika Anda menggunakan -P opsi dengan 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. Contoh perintah berikut 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. Opsi ini mengatur variabel pemrograman 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 Anda tidak menentukan komputer server, 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.
Note
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).
Note
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.
Jika Anda memakai opsi -U bersama opsi -E (yang akan dijelaskan di artikel ini), maka pesan galat akan muncul.
-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>
Opsi input dan 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 Anda tidak menentukan halaman kode, 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 Anda menentukan
-usebagai opsi, outputnya selalu dalam Unicode little-endian.Jika Anda tidak menentukan file output, halaman kode output adalah halaman kode konsol. Pendekatan ini memungkinkan output ditampilkan dengan benar di konsol.
Beberapa file input diasumsikan menggunakan halaman kode yang sama. File input Unicode dan non-Unicode dapat dicampur.
Masukkan chcp di prompt perintah untuk memverifikasi halaman kode .cmd.exe
Note
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. Anda dapat menentukan beberapa file yang dibaca dan diproses sqlcmd secara berurutan. Jangan gunakan spasi apa pun di antara nama file.
sqlcmd memeriksa pertama-tama apakah semua file yang ditentukan ada. Jika satu atau beberapa file tidak ada, sqlcmd akan keluar. Opsi -i dan -Q/-q opsinya saling eksklusif.
Note
Jika Anda menggunakan -i opsi diikuti oleh satu atau beberapa parameter tambahan, Anda harus menggunakan spasi antara parameter dan nilai . Persyaratan 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.
Anda dapat menggunakan opsi ini 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 Anda menentukan -u, sqlcmd menyimpan output_file dalam format Unicode. Jika nama file tidak valid, sqlcmd menghasilkan pesan kesalahan dan keluar.
sqlcmd tidak mendukung penulisan bersamaan dari beberapa proses sqlcmd ke file yang sama. Jika ini terjadi, pertimbangkan output file rusak atau salah. Opsi -f ini juga relevan dengan format file.
sqlcmd membuat file ini jika tidak ada.
sqlcmd menimpa file dengan nama yang sama dari sesi sebelumnya. File yang ditentukan di sini bukan stdout file. Jika Anda menentukan stdout file, sqlcmd tidak menggunakan file ini.
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.
Note
Untuk utilitas sqlcmd (Go), diperlukan argumen -r atau 0.
-R
Berlaku untuk: sqlcmd (ODBC) 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.
Note
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.
Note
Untuk utilitas sqlcmd (Go), file output Unicode yang dihasilkan diawali dengan tanda urutan byte (BOM) little-endian UTF-16.
Opsi pelaksanaan kueri
-e
Menulis skrip input ke perangkat output standar (stdout).
-I
Berlaku untuk: sqlcmd (ODBC) saja.
Mengatur opsi koneksi SET QUOTED_IDENTIFIER ke ON. Pengaturan default adalah OFF. Untuk informasi selengkapnya, lihat MENGATUR QUOTED_IDENTIFIER.
Note
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. Anda dapat menjalankan beberapa kueri yang dibatasi dengan titik koma. Gunakan tanda kutip di sekitar kueri, seperti yang diperlihatkan dalam contoh berikut.
Pada command prompt, ketik:
sqlcmd -d AdventureWorks2025 -q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2025 -q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"
sqlcmd -d AdventureWorks2025 -q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2025 -q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"
sqlcmd -d AdventureWorks2025 -q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2025 -q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"
Important
Jangan gunakan terminator GO dalam kueri.
Jika Anda menentukan -b bersama dengan opsi ini, sqlcmd keluar dengan kesalahan. Opsi -b ini dijelaskan di tempat lain dalam artikel ini.
-Q "kueri baris perintah"
Menjalankan kueri ketika sqlcmd dimulai dan kemudian segera keluar dari sqlcmd. Anda dapat menjalankan beberapa kueri yang dibatasi dengan titik koma.
Gunakan tanda kutip di sekitar kueri, seperti yang diperlihatkan dalam contoh berikut.
Pada command prompt, ketik:
sqlcmd -d AdventureWorks2025 -Q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2025 -Q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"
sqlcmd -d AdventureWorks2025 -Q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2025 -Q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"
sqlcmd -d AdventureWorks2025 -Q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"
sqlcmd -d AdventureWorks2025 -Q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"
Important
Jangan gunakan terminator GO dalam kueri.
Jika Anda menentukan -b bersama dengan opsi ini, sqlcmd keluar dengan kesalahan. Opsi -b ini 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 Anda tidak menentukan nilai query_timeout , perintah tidak kehabisan waktu. query_timeout harus berupa angka antara 1 dan 65534. Jika Anda memberikan nilai yang bukan numerik atau tidak termasuk dalam rentang tersebut, sqlcmd menghasilkan kesalahan.
Note
Nilai batas waktu aktual dapat bervariasi dari nilai query_timeout yang ditentukan selama beberapa detik.
-v var = value [ var = value... ]
Berlaku untuk: Hanya Windows. Tidak mendukung Linux dan macOS.
Membuat variabel pembuatan skrip sqlcmd untuk digunakan dalam skrip sqlcmd .
Sertakan nilai dalam tanda kutip jika nilai berisi spasi. Anda dapat menentukan beberapa <var>="<value>" nilai. Jika salah satu nilai yang Anda tentukan berisi kesalahan, 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. Pengaturan default mencetak judul sekali untuk setiap set hasil kueri. Opsi ini mengatur variabel pemrograman sqlcmdSQLCMDHEADERS. Gunakan -1 untuk menentukan bahwa header tidak dicetak. Nilai 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.
-
-kmenghapus karakter kontrol. -
-k1mengganti setiap karakter kontrol dengan spasi. -
-k2mengganti 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
Menghapus spasi di akhir dari kolom. Gunakan opsi ini bersama dengan -s opsi saat menyiapkan data yang ingin Anda ekspor ke aplikasi lain. Tidak dapat digunakan dengan opsi -y atau -Y.
-y lebar_tampilan_tipe_panjang_variabel
Menetapkan variabel pemrograman `sqlcmd`. Nilai defaultnya adalah 256. Ini membatasi jumlah karakter yang dikembalikan untuk jenis data panjang variabel besar:
- varchar(max)
- nvarchar(max)
- varbinary(max)
- xml
- jenis data yang ditentukan pengguna (UDT)
- text
- ntext
- image
UDT dapat memiliki panjang tetap tergantung pada implementasinya. Jika panjang UDT dengan panjang tetap ini lebih pendek dari display_width, nilai UDT yang dikembalikan tidak terpengaruh. Namun, jika panjangnya lebih panjang dari display_width, output dipotong.
Caution
-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_jenis_panjang_tetap
Menetapkan variabel pemrograman `sqlcmd`. Nilai 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 sqlcmd 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 Anda mengatur -V opsi , selain -b, sqlcmd tidak melaporkan kesalahan jika tingkat keparahan lebih rendah dari nilai yang ditetapkan oleh -V opsi . 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.
sqlcmd mengirim pesan yang memiliki tingkat keparahan lebih besar dari atau sama dengan tingkat ini. Ketika Anda mengatur nilai ini ke -1, sqlcmd mengirim semua pesan, termasuk pesan informasi. Jangan sertakan spasi antara tag -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 error_severity_level
Mengontrol tingkat keparahan yang digunakan sqlcmd 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. Anda dapat menggunakan file batch dan CMD 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, Anda harus mengakhiri perintah dan mengirimkannya ke SQL Server menggunakan kata GO pada baris itu sendiri, diikuti oleh Enter. 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: Hanya Windows. Tidak mendukung Linux dan macOS.
Mencantumkan komputer server yang dikonfigurasi secara lokal, dan nama komputer server yang disiarkan di jaringan. Anda tidak dapat menggunakan parameter ini dalam kombinasi dengan parameter lain. Jumlah maksimum komputer server yang dapat dicantumkan adalah 3.000. Jika daftar server dipotong karena ukuran buffer, pesan peringatan ditampilkan.
Note
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 Anda menentukan parameter c opsional, output muncul tanpa Servers: baris header, dan setiap baris server dicantumkan 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.)
Where:
-
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 Anda menentukan parameter opsional 1, format output statistik berformat pemisahan titik dua yang dapat diimpor dengan mudah ke spreadsheet atau diproses skrip.
Jika Anda menentukan parameter opsional sebagai 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 Anda menentukan parameter 1opsional , sqlcmd menghasilkan pesan kesalahan lalu keluar. Perintah berikut dinonaktifkan saat -X opsi digunakan:
ED-
!!perintah
Jika Anda menentukan -X opsi , itu 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 .
Note
Di macOS, jalankan sqlcmd '-?' (dengan tanda kutip) sebagai gantinya.
Remarks
Anda tidak perlu menggunakan opsi dalam urutan yang diperlihatkan di bagian sintaks.
Note
Jika Anda menggunakan -i opsi diikuti oleh satu atau beberapa parameter tambahan, Anda harus menggunakan spasi antara parameter dan nilai . Persyaratan ini adalah masalah yang diketahui dalam sqlcmd (Go).
sqlcmd mencetak baris kosong di antara beberapa tataan hasil dalam batch. Selain itu, <x> rows affected pesan tidak muncul saat tidak berlaku untuk pernyataan yang sedang berjalan.
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.
Note
Opsi -l, -Q, -Z, atau -i menyebabkan sqlcmd keluar setelah eksekusi.
Sistem operasi yang mendasar menentukan panjang total baris perintah sqlcmd di lingkungan perintah (misalnya, cmd.exe atau bash), termasuk semua argumen dan variabel yang diperluas.
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. Jika Anda menggunakan -D opsi , sqlcmd dan bcp terhubung 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.
Untuk daftar entri yang didukung driver, lihat DSN dan Kata Kunci dan Atribut String Koneksi.
Dalam DSN, hanya entri DRIVER yang diperlukan. Untuk menyambungkan ke server jarak jauh, sqlcmd atau bcp memerlukan nilai dalam SERVER elemen .
SERVER Jika elemen kosong atau tidak ada di DSN, sqlcmd atau 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 Anda menentukan opsi yang sama 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 Anda menentukan Trusted_Connection=yes di DSN, autentikasi Kerberos digunakan; nama pengguna (-U) dan kata sandi (-P), jika disediakan, diabaikan.
Anda dapat memodifikasi skrip yang ada yang memanggil isql 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 , alih-alih menggunakan serangkaian sesi.
Atur nilai batas waktu untuk batch atau eksekusi kueri yang lebih tinggi dari waktu eksekusi yang diharapkan untuk batch atau kueri.
Gunakan praktik berikut untuk membantu memaksimalkan kebenaran:
Gunakan
-V 16untuk mencatat pesan keparahan tingkat 16 apa pun. Pesan tingkat keparahan 16 menunjukkan kesalahan umum yang dapat Anda koreksi.Periksa kode keluar dan variabel
DOS ERRORLEVELsetelah proses selesai. sqlcmd kembali0secara normal. Jika tidak, menetapkanERRORLEVELseperti yang dikonfigurasi oleh-V. Dengan kata lain, jangan berharapERRORLEVELmenjadi nilai yang sama dengan nomor kesalahan yang dilaporkan dari SQL Server. Nomor kesalahan adalah nilai khusus SQL Server yang sesuai dengan fungsi sistem @@ERROR.ERRORLEVELadalah nilai khusus sqlcmd untuk menunjukkan mengapa sqlcmd dihentikan. Nilainya dipengaruhi oleh menentukan-bparameter .
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.
Konten terkait
- Periksa versi utilitas sqlcmd yang terinstal
- Mengunduh dan menginstal utilitas sqlcmd
- Perintah dalam utilitas sqlcmd
- Menggunakan sqlcmd dengan variabel pembuatan skrip
- Panduan Cepat: Menjalankan image kontainer SQL Server Linux dengan Docker
- Memulai utilitas sqlcmd
- Jalankan T-SQL dari file skrip dengan sqlcmd
- Menggunakan sqlcmd
- Menyambungkan ke SQL Server dengan sqlcmd
- Mengedit skrip SQLCMD dengan Editor Kueri
- Membuat Tahap Tugas CmdExec