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 がリモート接続を許可していない
リモートの接続を許可していなくても、やっぱり失敗するようです。設定変更は以下。
- [スタート] - [プログラム] - [SQL Server 2005] - [構成ツール] - [SQL Server セキュリティ構成]を起動します。
- SQL Server セキュリティ構成を起動し、[機能のセキュリティ構成]を選択します。
- [インスタンス別に表示]タブを選択し、[リモート接続]を選択し、[ローカル接続およびリモート接続(R)]を選択します。
エラー2の対処
ここに大体の対処は書いてますが。以下のライブラリをインストールすればOK。
- Microsoft SQL Server System CLR Types
- Microsoft SQL Server 2008 Management Objects
- Microsoft SQL Server 2008 Native Client