SQLServer2005を使ってみる・2 接続してみる・SQL発行

インスタンス名と接続文字列の部分でちょっと悩んでしまいました。
EnterpriseとExpress両方使っていたのですが、Enterprise(というかExpress以外)だとデフォルトのインスタンス名が「MSSQLSERVER」なのでDBアクセス時の接続先がサーバー名のみでの接続

osql -U sa -P password -S SERVER_NAME

だったのですが、Expressだと「SQLEXPRESS」がデフォルトの為接続先にサーバー名インスタンス名を指定

osql -U sa -P password -S SERVER_NAMESQLEXPRESS

とする必要があったのです。
で、なんでこの差があるんだろうと悩んであれこれ試した結果、「MSSQLSERVER」かそれ以外か、というところに気づいたのです。マニュアル読まないのが悪いのですが。


VirtualServerを利用してEnterprise用とExpress用にサーバーを組んだ(会社が与えてくれる検証用サーバーなのでハイパワーなのです!)ので、じゃあネットワーク越しにもアクセスしてみるか!と思い、お互いからお互いに接続実験。

[SQL Native Client]SQL ネットワークインターフェイス:サーバーは要求されたプロトコルをサポートしていません
[xFFFFFFFF].
[SQL Native Client]ログイン タイムアウトが時間切れになりました
[SQL Native Client]サーバーへの接続確立時にエラーが発生しました。接続先が SQL Server 2005 である場合は、既定の設定では
SQL Server がリモート接続を許可していないことが原因である可能性があります

つまり、デフォルトだとリモート接続が許可されていないと。
調べてみると、TCP/IPを有効にしてやれば良いとの事。

SQLサーバー構成マネージャ(SQL Server Configration Manager)でTCP/IPを有効にしてサービスを再起動したところ、無事つながるようになりました!


今回、ちょっと強引ですがEnterpriseについてくるサンプルDB(AdventureWorks)をバックアップ→Express側で復元としてどちらにもAdventureWorksが存在する状態にしましたので、SQLを発行してみる。
(Express用のAdventureWorksってダウンロード出来たのね、後で知った)

use AdventureWorks
select * from Person.Address
go

ををを!なんかいっぱい出てきた!!
とりあえずは無事成功のようです。


今回のポイント

・インスタンス名をMSSQLSERVERにするとサーバー名のみでアクセス可、ローカルだと接続文字列なしで繋がる
それ以外のインスタンス名だとサーバー名インスタンス名を指定して接続

・外部から接続する場合は、SQLサーバー構成マネージャでTCP/IPを有効にしてから
スポンサーサイト

Comment

 
管理人にのみ表示する
 

Track Back

TB URL

HOME

プロフィール

ラキア

  • Author:ラキア
  • ビリヤードB級、JPA SL5
    ホームは新宿BAGUSと荻窪サンビリ

    プレイ :McDarmott+OBPro+
    ブレイク:Adam+OBSBS+
    ジャンプ:TENGU

最近の記事

カテゴリー

月別アーカイブ

最近のコメント

最近のトラックバック

ブログ内検索

RSSフィード

リンク