このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
エクスポート (0) 印刷
すべて展開

方法:sqlcmd を使用した Azure SQL データベースへの接続

更新日: 2015年7月

このトピックでは、sqlcmd.exe ユーティリティから Microsoft Azure SQL データベース への接続が、従来の Microsoft SQL Server オンプレミスへの接続とどのように異なるかについて説明します。また、SQL Server Management Studio (SSMS) についても説明します。

特定の用途の接続文字列を次の表に示します。表を見やすくするために、各文字列は複数の行に分かれています。

 

データベース製品 接続文字列 コメント

A.
Microsoft SQL Server、オンプレミス

sqlcmd.exe -P MyPassword
    -U MyLogin
    -S myserver

既定値は master データベースです。

B.
Azure SQL データベース、完全な形式

sqlcmd.exe -P MyPassword
    -U MyLogin@myserver
    -S tcp:myserver.database.windows.net,1433
    -d AdventureWorks
    -l 30

この形式が推奨されます。

C.
Azure SQL データベース、より短い形式

sqlcmd.exe -P MyPassword
    -U MyLogin
    -S myserver.database.windows.net
    -d AdventureWorks
    -l 30

この短い形式は推奨されません。場合によっては、この短い形式が適しています。

この形式は、-d および -l パラメーターを破棄することでさらに短くできますが、やはり推奨されません。

SQL Server への接続と Azure SQL データベース への接続との間で異なるパラメーターについて、Azure SQL データベース に適用される相違点を次の表に示します。

 

Parameter 値の例 Azure SQL データベース に関する説明

-U

ユーザー名。

-U MyLogin@myserver

次の無効な値は機能するかもしれませんが、@myserver の後のすべてのドット区切りのノードが無視されるため無効です:
-U MyLogin@myserver.database.windows.net

次の不適切な値も機能します:
-U MyLogin@myserver.silly

サーバー名部分に対する次の不正な値はエラーとなります:
-U MyLogin@wrongsvr

@ および単一ノードのサーバー名を含めることで、目的のサーバーが接続されることを適切に確認できます。ただし、これらを含めることが必ずしも必要とは限りません。

-S

サーバー名と拡張子。

-S tcp:myserver.database.windows.net,1433

ドットで区切られたリテラル .database.windows.net は常に必須です。

先頭の tcp: 部分は、必要な通信プロトコルを識別します。省略可ですが、推奨されます。

末尾の ,1433 は、Azure SQL データベース が使用する通信ポート番号です。省略可ですが、推奨されます。

-d

データベース名。

-d AdventureWorks

Azure SQL データベース 上の master データベースに接続することはほとんどありません。それでも master は既定のデータベースです。

Azure SQL データベース では、Transact-SQL コマンド USE はサポートされていません。master データベースまたは任意のデータベースから切り替えることはできません。

そのため、通常は -d パラメーターを使用して接続する必要があります。

-l

ログイン タイムアウト。

-l 30

Web 経由でログインする場合は、接続の試行により長い時間を指定することをお勧めします。既定のログイン タイムアウト値は 15 秒ですが、Web 経由では、待機時間をさらに 30 秒長くすると有効な場合があります。

Azure SQL データベース に対して sqlcmd.exe を実行した場合の cmd.exe コンソールの内容を次に示します。

[C:\\]
>> sqlcmd.exe -U MyLogin@myserver -S tcp:myserver.database.windows.net,1433 -d AdventureWorks -P MyPassword -l 30
1> SET nocount on;  SELECT getdate();
2> SELECT top 3 o.name from sys.objects as o where o.type='U' order by 1;
3> go

-----------------------
2015-05-12 23:17:32.740
name

---------------------------------------------------------------------------------------------------------------------------

Address

BuildVersion

Customer

1> quit

[C:\\]
>>

sqlcmd.exe に適用される接続文字列のアドバイスは、SSMS (ssms.exe) にも適用されます。

SSMS では、[サーバーへの接続] ダイアログ ボックスに次の値を入力する必要があります。

  • [認証] というラベルの付いたコントロールを、値 [SQL Server 認証] に設定します。

    • Azure SQL データベースでは、[Windows 認証] はサポートされていません。

  • [オプション] > [接続プロパティ] をクリックします。次の設定を入力します。

    • [データベースへの接続]: MyDatabaseName

    • [接続タイムアウト]: 30

表示:
© 2015 Microsoft