sqlcmd を使用して Synapse SQL に接続する
sqlcmd コマンド ライン ユーティリティを使用して、Synapse SQL 内のサーバーレス SQL プールおよび専用 SQL プールに接続し、クエリを実行することができます。
1.接続する
sqlcmd の使用を開始するには、コマンド プロンプトを開いて「sqlcmd」と入力し、続けて Synapse SQL データベースの接続文字列を入力します。 接続文字列では、次のパラメーターが必要になります。
- サーバー (-S):
<
サーバー名>
-ondemand.sql.azuresynapse.net (サーバーレス SQL プール) または<
サーバー名>
.sql.azuresynapse.net (専用 SQL プール) の形式のサーバー - データベース (-d): データベース名
- 引用符で囲まれた ID の有効化 (-I): Synapse SQL インスタンスに接続するには、引用符で囲まれた ID を有効にする必要があります。
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
Note
Microsoft Entra ID を使用して認証を行うには、Microsoft Entra 認証を有効にする必要があります。
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 のドキュメントを参照してください。