SQLServerのアンインストール手順は?

なんらかのトラブルでSQLサーバをアンインストールしたいことがあります。

例えばデータベースのパスワードを忘れてしまった、アプリとの連携がうまくいかない・・・

アプリ機能からSQLSサーバのアンインストールし再度入れなおしても以前の情報がのこっており

上書きインストールしてもダメです。

いろいろ当たりましたが以下のサイトが一番有力でした。

SQL Server の手動アンインストール手順 を参考にしながらの補足説明になってます。

 ここにない情報でポイントを書いておきますね。

0.まず最初に、

・「アプリと機能一覧」に残っていてもかまわない(通常の削除していなくても)

・予め、「サービス一覧」より「SQL Server(インスタンス名)を「サービス停止」しておく(毎回聞かれず便利)

 

2. MsiExec.exe /x によるコンポーネントアンインストールにて

・途中でエラーがでますが、そのままあきらめずに順番に進めていってください。

msiexec /x GUID

   (例) msiexec /x{202AAF1F-69AA-442A-B59F-6B54B1AD07C6}

/xと{202A~07C6}の間はスペースをつくらない。すると「この製品をアンインストールしますか?」ポップアップがでます。

3. GAC の削除にて

・バッチファイルの作り方

バッチファイル内容をメモ帳で作成し、ファイル名.batとうものを作る、起動しやすいようにCドライブなら適当なファイル名を作りそこの下に置いておく

ここまでくればあとはもう少しです。

More than 3 years have passed since last update.

posted at 2019-08-08

updated at 2019-08-11

SSMSが起動しない不具合発生後に「プログラムと機能」からの削除と再起動を行った所再発したため、備忘録として

この記事はMicrosoft Japan SQL Server Support Teamのブログを参考に、
手順をさらにスクリプト化した物となります。

1.「プログラムと機能」から削除

  • コントロールパネルのアドレスバーに「コントロール パネル\プログラム\プログラムと機能」と入れると移動できる
  • SQL Server関連の物を削除

2.「プログラムと機能」に「SQL」が含まれるプログラムがないか検索、あれば削除する

  • 管理者権限PowerShellで実行

Get-Item -Path "Registry::HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*" | # レジストリからアンインストール可能な物を取得 ForEach-Object { $dispname = (Get-Item -Path "Registry::$_").GetValue("DisplayName"); if($dispname -ne $null -and $dispname.IndexOf("SQL") -gt -1){ "[" + $dispname + "]`t" + (Get-Item -Path "Registry::$_").GetValue("UninstallString"); } } | # SQLが含まれるプログラムのUninstallStringを取得 Out-String -Stream | # 文字列配列化 ForEach-Object {$_.ToString().Trim() -replace ".*`t",""} | # 各行のタブ文字以前を削除し、UninstallStringのみにする ForEach-Object {$_.ToString().Trim() -replace "MsiExec.exe \/X","MsiExec.exe /x """} | # 各行をコマンドに変更① ForEach-Object {$_.ToString().Trim() -replace "MsiExec.exe \/I","MsiExec.exe /x """} | # 各行をコマンドに変更② ForEach-Object {$_.ToString().Trim() -replace "}","}"""} | # 各行をコマンドに変更③ ForEach-Object {Invoke-Expression "${_}"} # 各行を実行

3.GACから削除

  • 管理者権限コマンドプロンプトで実行

REM ======================= if exist "%windir%\assembly\GAC\*SQLServer*" del /s /q /f "%windir%\assembly\GAC\*SQLServer*" if exist "%windir%\assembly\GAC_32\*SQLServer*" del /s /q /f "%windir%\assembly\GAC_32\*SQLServer*" if exist "%windir%\assembly\GAC_64\*SQLServer*" del /s /q /f "%windir%\assembly\GAC_64\*SQLServer*" if exist "%windir%\assembly\GAC_MSIL\*SQLServer*" del /s /q /f "%windir%\assembly\GAC_MSIL\*SQLServer*" REM =======================

4.レジストリキーを削除

  • 管理者権限コマンドプロンプトで実行
  • 名称にMSSQL又はSQL Serverが含まれるレジストリキーを削除

for /f "delims= usebackq" %i in (`reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft" ^| findstr /C:"MSSQL" /C:"SQL Server"`) do (reg delete "%i" /f)

5.SQLServer関連のフォルダの削除

  • 管理者権限コマンドプロンプトで実行

REM ======================= if exist "%USERPROFILE%\Local Settings\Application Data\Microsoft\Microsoft SQL Server" rmdir /S /Q "%USERPROFILE%\Local Settings\Application Data\Microsoft\Microsoft SQL Server" if exist "%USERPROFILE%\Application Data\Microsoft\Microsoft SQL Server" rmdir /S /Q "%USERPROFILE%\Application Data\Microsoft\Microsoft SQL Server" if exist "%USERPROFILE%\All Users\Application Data\Microsoft\Microsoft SQL Server" rmdir /S /Q "%USERPROFILE%\All Users\Application Data\Microsoft\Microsoft SQL Server" if exist "%ProgramFiles%\Microsoft SQL Server" rmdir /S /Q "%ProgramFiles%\Microsoft SQL Server" if exist "%ProgramFiles(x86)%\Microsoft SQL Server" rmdir /S /Q "%ProgramFiles(x86)%\Microsoft SQL Server" REM =======================

6.TEMP内のリソース削除

  • 管理者権限コマンドプロンプトで実行
  • 使用中で削除できなかった物は無視で良い

del %TEMP%\* /S /Q del %systemroot%\temp\* /S /Q

91.インストールディレクトリや共有機能ディレクトリを変更した場合は、自分で削除

99.OS再起動

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information

What you can do with signing up

Toplist

最新の投稿

タグ