使用 sqlcmd 連線至 Synapse SQL

您可以使用 sqlcmd 命令列公用程式,在 Synapse SQL 內連線和查詢無伺服器 SQL 集區和專用 SQL 集區。

1. 連線

若要開始使用 sqlcmd,請開啟命令提示字元,然後輸入 sqlcmd ,然後輸入 Synapse SQL 資料庫的 連接字串。 連接字串需要下列參數:

  • 伺服器 (-S): 伺服器名稱 <> ondemand.sql.azuresynapse.net(無伺服器 SQL 集區)或 < 伺服器名稱 > 。sql.azuresynapse.net(專用 SQL 集區)
  • 資料庫 (-d): 資料庫名稱
  • 啟用引號識別碼 (-I): 必須啟用引號識別碼才能連線到 Synapse SQL 實例

若要使用 SQL Server 驗證,您必須新增使用者名稱和密碼參數:

  • 使用者 (-U): 使用者表單 < 中的伺服器使用者>
  • 密碼 (-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 檔