Menyambungkan ke Synapse SQL dengan sqlcmd

Anda dapat menggunakan utilitas baris perintah sqlcmd untuk menyambungkan dan mengkueri kumpulan SQL tanpa server dan kumpulan SQL khusus dalam Synapse SQL.

1. Koneksi

Untuk memulai dengan sqlcmd, buka perintah dan masukkan sqlcmd diikuti dengan string koneksi untuk database Synapse SQL Anda. String koneksi memerlukan parameter berikut:

  • Server (-S): Server dalam formulir <Server Name-ondemand.sql.azuresynapse.net>(Kumpulan SQL Tanpa Server) atau <Server Name.sql.azuresynapse.net>(Kumpulan SQL Khusus)
  • Database (-d): Nama database
  • Aktifkan Pengidentifikasi Pemisah (-I): Pengidentifikasi pemisah harus diaktifkan untuk tersambung ke instans Synapse SQL

Untuk menggunakan Autentikasi SQL Server, Anda perlu menambahkan parameter nama pengguna dan kata sandi:

  • Pengguna (-U): Pengguna server dalam formulir <Pengguna>
  • Kata sandi (-P): Kata sandi yang terkait dengan pengguna

String koneksi Anda mungkin terlihat seperti contoh berikut:

Kumpulan SQL tanpa server

C:\>sqlcmd -S partyeunrt-ondemand.sql.azuresynapse.net -d demo -U Enter_Your_Username_Here -P Enter_Your_Password_Here -I

Kumpulan SQL khusus

C:\>sqlcmd -S MySqlDw.sql.azuresynapse.net -d Adventure_Works -U myuser -P myP@ssword -I

Untuk menggunakan autentikasi terintegrasi Microsoft Entra, Anda perlu menambahkan parameter Microsoft Entra:

  • Autentikasi Microsoft Entra (-G): gunakan ID Microsoft Entra untuk autentikasi

String koneksi Anda mungkin terlihat seperti pada contoh berikut:

Kumpulan SQL tanpa server

C:\>sqlcmd -S partyeunrt-ondemand.sql.azuresynapse.net -d demo -G -I

Kumpulan SQL khusus

C:\>sqlcmd -S MySqlDw.sql.azuresynapse.net -d Adventure_Works -G -I

Catatan

Anda perlu mengaktifkan autentikasi Microsoft Entra untuk mengautentikasi menggunakan Direktori Aktif.

2. Kueri

Gunakan kumpulan SQL khusus

Setelah koneksi, Anda dapat mengeluarkan pernyataan Transact-SQL (T-SQL) yang didukung terhadap instans. Dalam contoh ini, kueri dikirimkan dalam mode interaktif:

C:\>sqlcmd -S MySqlDw.sql.azuresynapse.net -d Adventure_Works -U myuser -P myP@ssword -I
1> SELECT name FROM sys.tables;
2> GO
3> QUIT

Untuk kumpulan SQL khusus, contoh berikut menunjukkan cara menjalankan kueri dalam mode batch menggunakan opsi -Q atau menyalurkan SQL Anda ke sqlcmd:

sqlcmd -S MySqlDw.sql.azuresynapse.net -d Adventure_Works -U myuser -P myP@ssword -I -Q "SELECT name FROM sys.tables;"
"SELECT name FROM sys.tables;" | sqlcmd -S MySqlDw.sql.azuresynapse.net -d Adventure_Works -U myuser -P myP@ssword -I > .\tables.out

Menggunakan kumpulan SQL nirserver

Setelah tersambung, Anda dapat mengeluarkan pernyataan Transact-SQL (T-SQL) yang didukung terhadap instans. Dalam contoh berikut, kueri dikirimkan dalam mode interaktif:

C:\>sqlcmd -S partyeunrt-ondemand.sql.azuresynapse.net -d demo -U Enter_Your_Username_Here -P Enter_Your_Password_Here -I
1> SELECT COUNT(*) FROM  OPENROWSET(BULK 'https://azureopendatastorage.blob.core.windows.net/censusdatacontainer/release/us_population_county/year=20*/*.parquet', FORMAT='PARQUET')
2> GO
3> QUIT

Untuk kumpulan SQL tanpa server, contoh yang disertakan menunjukkan cara menjalankan kueri dalam mode batch menggunakan opsi -Q atau menyalurkan SQL Anda untuk sqlcmd:

sqlcmd -S partyeunrt-ondemand.sql.azuresynapse.net -d demo -U Enter_Your_Username_Here -P 'Enter_Your_Password_Here' -I -Q "SELECT COUNT(*) FROM  OPENROWSET(BULK 'https://azureopendatastorage.blob.core.windows.net/censusdatacontainer/release/us_population_county/year=20*/*.parquet', FORMAT='PARQUET')"
"SELECT COUNT(*) FROM  OPENROWSET(BULK 'https://azureopendatastorage.blob.core.windows.net/censusdatacontainer/release/us_population_county/year=20*/*.parquet', FORMAT='PARQUET')" | sqlcmd -S partyeunrt-ondemand.sql.azuresynapse.net -d demo -U Enter_Your_Username_Here -P 'Enter_Your_Password_Here' -I > ./tables.out

Langkah berikutnya

Untuk mengetahui informasi selengkapnya tentang opsi sqlcmd, lihat dokumentasi sqlcmd.