用 sqlcmd 連接 Synapse SQL

你可以使用 sqlcmd 命令列工具,連接並查詢 Synapse SQL 內的無伺服器 SQL 池和專用 SQL 池。

1. 連線

要開始使用 sqlcmd,打開命令提示字元,輸入 sqlcmd ,接著輸入 Synapse SQL 資料庫的連線字串。 連接字串需要以下參數:

  • 伺服器(-S): 伺服器形式為 <Server Name-ondemand.sql.azuresynapse.net>(無伺服器 SQL 池)或 <Server Name.sql.azuresynapse.net>(專用 SQL 池)
  • 資料庫(-d): 資料庫名稱
  • 啟用引號識別碼(-I): 必須啟用引號識別碼才能連接到 Synapse SQL 實例

要使用 SQL Server 認證,你需要新增使用者名稱和密碼參數:

  • 使用者(-U): 伺服器使用者格式顯示為 <User>
  • 密碼(-P): 與使用者相關的密碼

你的連接串可能看起來像以下範例:

無伺服器 SQL 集區

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

專用 SQL 集區

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

要使用 Microsoft Entra 整合驗證,您需要新增 Microsoft Entra 參數:

  • Microsoft Entra 認證(-G): 使用 Microsoft Entra ID 進行認證

你的連接串可能看起來像以下其中一個例子:

無伺服器 SQL 集區

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

專用 SQL 集區

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

備註

你需要 啟用 Microsoft Entra 認證 ,才能使用 Active Directory 進行認證。

2. 查詢

使用專用的 SQL 池

連線後,你可以對實例發出任何支援的 Transact-SQL (T-SQL) 語句。 在此範例中,查詢以互動模式提交:

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

針對專用 SQL 池,以下範例示範如何使用 -Q 選項以批次模式執行查詢,或將 SQL 路由至 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

使用無伺服器 SQL 集區

連線後,你可以對實例發出任何支援的 Transact-SQL (T-SQL) 語句。 以下範例中,查詢以互動模式提交:

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

對於無伺服器 SQL 池,以下範例展示了如何使用 -Q 選項或將 SQL 路由至 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

後續步驟

欲了解更多關於 sqlcmd 選項的資訊,請參閱 sqlcmd 文件