- PR -

SQL Server Expressをコマンドプロンプトで操作したい

投稿者投稿内容
yem
常連さん
会議室デビュー日: 2008/01/05
投稿数: 37
投稿日時: 2008-02-17 11:20
お世話になります。

コマンドプロンプトを使って、SQL Server Expressを操作したいと思っていますが、
うまくいきません。

以下の方法で失敗しました。

<失敗1>
Program Files→Microsoft SQL Server→90→Tools→BinnフォルダのSQL CMD
を開きます。
これは、文字入力すらできません。

<失敗2>
すでにDatabase1があります。
スタート→すべてのプログラム→アクセサリ→コマンドプロンプト
C:\Documents and Settings\xxxxx>
と表示されているところに
SQLCMD -E -S (local) -d Database1
を入力します。すると、
HResult 0x2、レベル 16、状態1
名前付きパイプのプロバイダ:SQL Server への接続を開けませんでした [2].
Sqlcmd: エラー: Microsoft SQL Native Client: サーバーへの接続確立時にエラーが発生しました。接続先が SQL Server 2005 である場合は、既定の設定では SQL Server がリモート接続を許可していないことが原因である可能性があります。
Sqlcmd: エラー: Microsoft SQL Native Client: ログイン タイムアウトが時間切れになりました。

C:\Documents and Settings\xxxxx> _
と、表示されます。

どうしたらよいのか、ご教授ください。
yem
常連さん
会議室デビュー日: 2008/01/05
投稿数: 37
投稿日時: 2008-02-17 11:45
説明不足だったかもしれませんので、説明を追加します。

リモート接続は有効になっています。以下の方法です。

SQL Server 2005 セキュリティ構成から
サービスと接続のセキュリティ構成でリモート接続をクリックして、
ローカル接続およびリモート接続(R)
TCP/IPのみを使用する(T)のラジオボタンのみオンにしてから、適用ボタンをクリック。

接続設定変更の警告ダイアログでの、
設定変更のメッセージが表示(接続設定の変更は、データベースエンジンサービスを再開するまで有効になりません。)
の表示を待って、いったん停止ボタンクリック。そして、開始ボタンクリック。
OakBow
ベテラン
会議室デビュー日: 2007/09/15
投稿数: 51
投稿日時: 2008-02-17 13:46
「名前つきパイプ」での接続が許可されていないからはねられてるんじゃ
ないでしょうか。
エラーメッセージ見る限りそう読み取れるんですけれど。

http://msdn2.microsoft.com/ja-jp/library/ms188247.aspx

「SQLCMD」で検索するだけで豊富な説明を見つけられるので、まずそのあたり
で使い方を調べましょう。
yem
常連さん
会議室デビュー日: 2008/01/05
投稿数: 37
投稿日時: 2008-02-17 14:31
恐れ入ります。

ご指摘の名前付きパイプの件ですが、

TCP/IPのみを使用する(T)のラジオボタンのみオン

にした状態でも、「名前付きパイプ」での接続が必要なのでしょうか?

恥ずかしながら、初歩で独習の私にとっては、SQL Server を扱うにあたって、
この辺りの、操作前の前提となる基礎知識が不足している点で、
堂々めぐりを繰り返してしまいます。
TCP/IPって何だろう、名前付きパイプって何だろう?など、分らないことが多いのです。

まずは、SQL Server をコマンドプロンプトで操作するにあたる必要最小限の知識として、このようなことは知っておきたいのですが、ご紹介のURLでは、それ以前の知識を前提とした解説のようです。

上記を目的に学習するにあたり、更なる基礎のURLがありましたら、ご紹介いただけないでしょうか?なお、現在の操作方法は、もっぱら市販のテキストを利用しています。

どうぞ、よろしくお願いいたします。
未記入
大ベテラン
会議室デビュー日: 2008/02/07
投稿数: 115
投稿日時: 2008-02-18 11:00
Express Edition を既定のインスタンス(無名)としてインストールしたのでしょうか?デフォルト構成で Express Edition をインストールすると、無名ではなく EXPRESS という名前付きインスタンスになったと思います。

SQLCMD -E -S (local)\EXPRESS -d Database1

で繋がったりしませんか?
yem
常連さん
会議室デビュー日: 2008/01/05
投稿数: 37
投稿日時: 2008-02-18 23:09
ご指導ありがとうございます。

デフォルトで Express Edition をインストールしています。

SQLCMD -E -S (local)\\\\EXPRESS -d Database1
に期待しました。が、今度は以下のメッセージが表示されます。

HResult 0x2、レベル 16、状態 1
SQL ネットワーク インターフェイス : 指定された Server/Instance の位置を特
定しているときにエラーが発生しました [xFFFFFFFF].
Sqlcmd: エラー: Microsoft SQL Native Client: サーバーへの接続確立時にエラーが発生しました。接続先が SQL Server 2005 である場合は、既定の設定では SQL Server がリモート接続を許可していないことが原因である可能性があります。。
Sqlcmd: エラー: Microsoft SQL Native Client: ログイン タイムアウトが時間切れになりました。

どうしたものでしょうか?

いくつかの検索をしてみましたが、自分に合った解決策を見つけられていません(自分自身のレベルの低さのため)。

どうぞ、よろしくお願いいたします。
yem
常連さん
会議室デビュー日: 2008/01/05
投稿数: 37
投稿日時: 2008-02-18 23:12
追記です。

なぜか、バックスラッシュが4つに表示されましたが、
円マークを一つ付けたつもりです。

これが原因ということはないですよね!
yem
常連さん
会議室デビュー日: 2008/01/05
投稿数: 37
投稿日時: 2008-02-18 23:47
申し訳ございません。

バックスラッシュの代わりに円マークを入力してしまったのが、原因でした。
お騒がせしてしまいました。

SQLCMD -E -S (local)\\\\EXPRESS -d Database1
でなく、
SQLCMD -E -S (local)\EXPRESS -d Database1
として、無事つなぐことができました。

皆様、すみませんでした。

スキルアップ/キャリアアップ(JOB@IT)