normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

SQL Serverがつながらない件について・・・

現象

SQL Server 2005から、SQL Server 2008にアップグレードしたところ、Visual Studio 2008 SP1 から *.mdfファイルがアタッチできない事件が起きました。その際に発生したエラーメッセージが以下となっていました。

エラー1
ユーザーインスタンスのプロセスを起動中のエラーにより、SQL Server のユーザー
インスタンスを生成できませんでした。接続は閉じられます。

エラー1の原因としては、主に以下が考えられるそうです。

  • SQL Server のデータが残ったままになっている
  • SQL Server がリモート接続を許可していない
エラー2
アセンブリがロードできません‘Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0,
 Culture=neutral, PublicKeyToken=89845dcd8080cc91′

エラー2の原因としては、必要なライブラリがインストールされていない状態になっていることが考えられます。

エラー1の対処

SQL Server のデータが残ったままになっている

コレが結構ありがち。SQL Serverをアンインストールした場合、各アカウントごとに作られたデータがローカルに残ってます。
しかし、残っているSQL Serverのデータをキチンと消さないとSQL Serverのデータがアタッチできない状態になってしまいます。
この為、SQL Server のアンインストール後、以下のフォルダを削除する必要があります。

  • Windows Vista
    • C:\Users\<ユーザ名>\AppData\Local\Microsoft\Microsoft SQL Server Data
  • Windows XP
    • C:\Documents and Settings\<ユーザ名>\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS

コレがまた、VistaとXPでパスが違うからはまるんですよね…。

SQL Server がリモート接続を許可していない

リモートの接続を許可していなくても、やっぱり失敗するようです。設定変更は以下。

  1. [スタート] - [プログラム] - [SQL Server 2005] - [構成ツール] - [SQL Server セキュリティ構成]を起動します。
  2. SQL Server セキュリティ構成を起動し、[機能のセキュリティ構成]を選択します。
  3. [インスタンス別に表示]タブを選択し、[リモート接続]を選択し、[ローカル接続およびリモート接続(R)]を選択します。

エラー2の対処

ここに大体の対処は書いてますが。以下のライブラリをインストールすればOK。