sqlcmd ユーティリティの使用 (SQL Server Express)
コマンド プロンプトから sqlcmd ユーティリティを使用して、Microsoft SQL Server 2008 Express (SQL Server Express) データベースを管理できます。sqlcmd ユーティリティを使用するには、[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックして、「sqlcmd.exe」と入力します。
SQLCMD 構文
sqlcmd ユーティリティを実行する場合は、次の引数を使用できます。個々の引数については、SQL Server オンライン ブックの「sqlcmd ユーティリティ」および「チュートリアル: sqlcmd ユーティリティ」を参照してください。
Sqlcmd
[-U login id] [-P password] [-S server] [-H hostname]
[-E trusted connection] [-d use database name] [-l login timeout]
[-N encrypt connection] [-C trust the server certificate]
[-t query timeout] [-h headers] [-s colseparator] [-w screen width]
[-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
[-c cmdend] [-L[c] list servers[clean output]] [-q "cmdline query"]
[-Q "cmdline query" and exit] [-m errorlevel] [-V severitylevel]
[-W remove trailing spaces] [-u unicode output]
[-r[0|1] msgs to stderr] [-i inputfile] [-o outputfile]
[-f <codepage> | i:<codepage>[,o:<codepage>]]
[-k[1|2] remove[replace] control characters]
[-y variable length type display width]
[-Y fixed length type display width]
[-p[1] print statistics[colon format]]
[-R use client regional setting] [-b On error batch abort]
[-v var = "value"...]
[-X[1] disable commands[and exit with warning]]
[-? show syntax summary]
SQLCMD コマンド
次の表は、sqlcmd ユーティリティ内から使用できるコマンドの概要を示します。これらのコマンドの詳細については、SQL Server 2008 オンライン ブックの「sqlcmd ユーティリティ」を参照してください。
コマンド |
説明 |
---|---|
go [count] |
キャッシュされた Transact-SQL ステートメントを実行します。count の値を指定すると、キャッシュされたステートメントが 1 つのバッチとして count の回数だけ実行されます。たとえば、次の例では、2 つのステートメントが 2 回実行されます。
|
-Nencrypt connection |
暗号化された接続を要求するには、クライアント側でこのスイッチを使用します。このオプションは、ADO.net の ENCRYPT = true オプションと同等です。 |
-Ctrust the server certificate |
サーバーの証明書を信頼し、その有効性を検証しないように設定するには、クライアント側でこのスイッチを使用します。このオプションは、ADO.net の TRUSTSERVERCERTIFICATE = true オプションと同等です。 |
reset |
ステートメント キャッシュをクリアします。 |
ed |
このコマンドを入力すると、現在のステートメント バッチまたは最後に実行されたステートメント バッチを編集できます。最後に実行したバッチを編集するには、最後のバッチが実行された直後にこのコマンドを入力します。 |
!! <コマンド> |
オペレーティング システムのコマンドを実行します。オペレーティング システムのコマンドを実行するには、行頭に 2 つの感嘆符 (!!) を入力し、続けてオペレーティング システムのコマンドを入力します。たとえば、次の例では、現在のドライブのディレクトリの一覧が表示されます。
|
quit - または - exit |
sqlcmd を直ちに終了します。 |
exit [(statement)] |
このコマンドを入力すると、sqlcmd からの戻り値として SELECT ステートメントの結果を使用できます。 exit() ステートメントのかっこ内に何も指定していなければ、バッチ内のそのステートメントより前にあるものすべてが実行され、戻り値が返されずに終了します。 バッチ ファイルの一部として、exit パラメーターを使用することもできます。次に例を示します。
|
:r <filename> |
filename によって指定されたファイルを基に、Transact-SQL ステートメントと sqlcmd コマンドを解析し、ステートメント キャッシュ内に登録します。ファイルは、バッチ ターミネータ (go) が発行された後に読み取られ、実行されます。 |
:serverlist |
ローカルに構成されたサーバー、およびネットワーク上でブロードキャストしているサーバー名の一覧を表示します。 |
:list |
ステートメント キャッシュの内容を出力します。 |
:listvar |
現在設定されているスクリプト変数の一覧を表示します。 |
:error <destination>[ filename | STDERR | STDOUT] |
すべてのエラー出力を、filename によって指定されたファイル、または STDERR ストリームや STDOUT ストリームにリダイレクトします。既定では、エラー出力は STDERR に送信されます。 |
:out <destination>[ filename | STDERR | STDOUT ] |
すべてのクエリ結果を、filename によって指定されたファイル、または STDERR ストリームや STDOUT ストリームにリダイレクトします。既定では、出力は STDOUT に送信されます。 |
:perftrace <destination>[ filename | STDERR | STDOUT ] |
すべてのパフォーマンス トレース情報を、filename によって指定されたファイル、または STDERR ストリームや STDOUT ストリームにリダイレクトします。既定では、パフォーマンス トレース出力は STDOUT に送信されます。 |
:connect server_name[\instance_name] [-t timeout] [-U username [-P password] ] |
SQL Server のインスタンスに接続し、現在の接続を閉じます。 |
:on error [ exit | ignore ] |
スクリプト実行中またはバッチ実行中のエラー発生時に対応するアクションを設定します。 exit オプションを使用した場合、sqlcmd は該当するエラー値を表示して終了します。 ignore オプションを使用した場合、sqlcmd はエラーを無視し、バッチまたはスクリプトの実行を継続します。既定では、エラー メッセージが出力されます。 |
:help |
sqlcmd コマンド、および各コマンドの簡単な説明を一覧表示します。 |
SQL Server Express への接続
SQL Server Express サーバーに接続する場合は、サーバー名を指定する必要があります。また、SQL Server Express が名前付きインスタンスにインストールされている場合は、インスタンス名も指定する必要があります。既定では、sqlcmd では Windows 認証が使用されます。SQL Server 認証を使用して SQL Server Express サーバーに接続する場合は、SQL Server Express サーバーに接続するためのログオン情報も指定する必要があります。たとえば、server1 という名前の付けられているサーバー上の SQL Server Express の既定のインストールに接続する場合、次のような引数を使用できます。
sqlcmd -S server1\SQLExpress -U SqlUserAccount -P SqlPassword
注 |
---|
-P 引数を使用した場合、コマンド プロンプトにプレーンテキストでパスワードが表示されます。-P 引数を省略した場合は、パスワードを入力するように求められます。入力したテキストは非表示になります。 |
SQL Server Express を実行しているサーバー上で信頼済みのユーザー アカウントを使用してログオンしている場合は、-U 引数と -P 引数を省略できます。
sqlcmd -S server1\SQLExpress
注 |
---|
-E 引数は信頼関係接続の指定に使用します。これは、sqlcmd の既定の設定であるため、-E 引数は省略できます。 |
例
次の例では、sqlcmd ユーティリティを使用して、SqlServer1 という名前のサーバー上にある SqlExpress という名前の SQL Server Express のインスタンスに接続する方法を示します。
Sqlcmd -S SqlServer1\SqlExpress
接続したら、他のコマンドを発行してインスタンスを管理できます。たとえば、次のコマンドを使用して、現在インストールされているすべてのデータベースを表示できます。これは、アタッチされた SQL Server Express データベースの論理名を検出したい場合に便利な方法です。
SELECT name from sys.databases
Go
sp_configure システム ストアド プロシージャ
SQL Server Express リソースを管理および最適化するには、sp_configure システム ストアド プロシージャを使用して、構成オプションを設定できます。sp_configure の詳細については、SQL Server オンライン ブックの「サーバー構成オプションの設定」を参照してください。
次の構成オプションは、sp_configure の一部ですが、SQL Server Express ではサポートされていません。
Agent XPs
Database Mail XPs
SQL Mail XPs
Web Assistant プロシージャ