你可以使用 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 文件。