これ の絡みでいまだSQL Server 2005 Expressを使用してたりするのですが、アメリカの方からDBに変なデータが入ったのだけど消せないから見てくれと言う連絡が。たく、面倒なことを
リモートデスクトップで彼のPCに入ると、まず最初の10分でSQL Serverが2008 Expressにバージョンアップされていることが分かる。VC++ 2008も入っていたのでこの時に一緒にインストールされ、やった本人自覚なしだろう(彼これで2回目)。多分動くのだろうけど、複数バージョンサポートしたくないので2008をアンインストールして2005 Express SP4を入れなおす。MDFファイルも2008用にアップグレードされており2005じゃ読めなくなってしまったので、マスターファイルに差し替え(動作確認機なので大したデータは入ってない)。
次にsqlcmd.exeを使ってユーザーインスタンスを有効に。しかしながら、ユーザーインスタンスでMDFファイルをロードしようとすると、Failed to generate a user instance of sql server due to a failure in starting the processなるエラーが出て失敗する。Management Studio ExpressでMDFファイルをサーバーインスタンスとしてAttachすると問題なくアクセスできるため、MDFファイルにもサーバーへの接続にも問題なさそう。あくまでユーザーインスタンスだけで起きる問題。
調べた結果はC:¥Documents and Settings¥(ユーザーインスタンスを利用するユーザー名)¥Local Settings¥Application Data¥Microsoft¥Microsoft SQL Server Data¥SQLEXPRESSディレクトリを消してしまうと言うもの。どうやら以前のSQL Serverによって作られたユーザーインスタンスのごみデータが残っていたらしい。
Comments