SQL Server: Attach incorrect version 661 エラーで悩んでいるあなたへ!解決策を画像付きで丁寧に解説
SQL Server: Attach incorrect version 661 エラーは、異なるバージョンの SQL Server データベースファイルをアタッチしようとすると発生します。このエラーは、データベースの互換性レベルとアタッチしようとしているファイルのバージョンレベルが一致していないことを示しています。
原因
このエラーの主な原因は次のとおりです。
- 異なるバージョンの SQL Server データベースファイル: アタッチしようとしているファイルが、現在使用している SQL Server バージョンよりも古い、または新しいバージョンのものです。
- データベースの互換性レベルの不一致: データベースの互換性レベルが、アタッチしようとしているファイルのバージョンレベルと一致していません。
解決策
このエラーを解決するには、以下の手順を実行します。
アタッチしようとしているファイルのバージョンを確認する:
- ファイルのプロパティを確認して、ファイルのバージョンを確認します。
- SQL Server Management Studio (SSMS) を使用して、ファイルのバージョンを確認することもできます。
アタッチしようとしているファイルのバージョンと一致する SQL Server バージョンを使用する:
- アタッチしようとしているファイルが古いバージョンの場合は、そのバージョンに対応する SQL Server を使用してアタッチする必要があります。
データベースの互換性レベルを変更する:
- アタッチしようとしているファイルと一致する互換性レベルにデータベースの互換性レベルを変更できます。
- SSMS でデータベースに接続します。
- データベースのプロパティ ダイアログボックスを開きます。
- オプション ページを選択します。
- 互換性レベル ドロップダウンリストから、アタッチしようとしているファイルと一致する互換性レベルを選択します。
- OK をクリックして変更を保存します。
データベースをデタッチして再アタッチする:
- データベースをデタッチしてから、正しいバージョンの SQL Server を使用して再アタッチすることで、エラーを解決できる場合があります。
- タスク ペインで、データベース を展開します。
- データベースをデタッチ を選択します。
- デタッチするデータベースを選択します。
- OK をクリックしてデータベースをデタッチします。
- 追加 をクリックして、アタッチするすべてのファイルを追加します。
SQL Server Agent サービスを再起動する:
- 一部の場合は、SQL Server Agent サービスを再起動することでエラーを解決できる場合があります。
- サービス コンソールを開きます。
- 右クリック し、再起動 を選択します。
注意事項
- データベースをアタッチする前に、必ずバックアップを作成してください。
- データベースの互換性レベルを変更すると、データベースの動作に影響を与える可能性があります。変更を行う前に、必ず影響を評価してください。
サンプルコード:SQL Server: Attach incorrect version 661 エラーの解決策
USE [master];
ALTER DATABASE [MyDatabase]
SET COMPATIBILITY_LEVEL = 130;
このコードは、MyDatabase
という名前のデータベースの互換性レベルを 130 に設定します。この値は、SQL Server 2016 の互換性レベルに対応します。
注: このコードを実行する前に、必ずデータベースのバックアップを作成してください。
以下のサンプルコードは、デタッチして再アタッチする方法を示しています。
USE [master];
EXEC sp_detach_db 'MyDatabase';
ATTACH DATABASE 'MyDatabase'
FROM DATABASE_FILE = 'C:\Path\To\MyDatabase.mdf',
RESTORE DATABASE_FILE = 'C:\Path\To\MyDatabase.ndf';
このコードは、MyDatabase
という名前のデータベースをデタッチしてから、C:\Path\To\MyDatabase.mdf
と C:\Path\To\MyDatabase.ndf
というファイルから再アタッチします。
注: このコードを実行する前に、必ず SQL Server Agent サービスを停止してください。
上記以外にも、さまざまな方法でこのエラーを解決できます。詳細については、SQL Server のドキュメントを参照してください。
SQL Server: Attach incorrect version 661 エラーの解決策:その他の方
本項では、SQL Server: Attach incorrect version 661 エラーの解決策として、既にご紹介した方法に加えて、以下の3つの方法について詳しく説明します。
- SQL Server データベースのアップグレードまたはダウングレード
- データベースのコピー
- サードパーティ製ツールを使用する
概要
この方法は、アタッチしようとしているデータベースファイルのバージョンと、SQL Server インスタンスのバージョンを一致させることで、エラーを解決します。具体的には、以下の2つの方法があります。
- アップグレード: アタッチしようとしているデータベースファイルが古いバージョンの場合は、SQL Server インスタンスを新しいバージョンにアップグレードします。
利点
- 比較的シンプルな方法です。
- データベースファイルを変更する必要がありません。
欠点
- SQL Server インスタンスのアップグレードまたはダウングレードには、ダウンタイムが発生する可能性があります。
- すべてのデータベースが新しいバージョンと互換性があるとは限りません。
アップグレードまたはダウングレードの手順
SQL Server インスタンスのアップグレードまたはダウングレードの手順については、Microsoft のドキュメントを参照してください。
この方法は、互換性のあるバージョンの SQL Server でデータベースのコピーを作成してから、そのコピーをアタッチすることで、エラーを解決します。具体的には、以下の手順を実行します。
- 互換性のあるバージョンの SQL Server をインストールします。
- アタッチしようとしているデータベースファイルからデータベースのコピーを作成します。
- 作成したデータベースのコピーを、互換性のあるバージョンの SQL Server インスタンスにアタッチします。
- ダウンタイムを最小限に抑えることができます。
- 時間がかかる場合があります。
- 追加のストレージスペースが必要となります。
データベースのコピーの手順については、Microsoft のドキュメントを参照してください。
この方法は、サードパーティ製ツールを使用して、アタッチしようとしているデータベースファイルを互換性のあるバージョンに変換してから、そのファイルをアタッチすることで、エラーを解決します。
- データベースファイルをアップグレードまたはダウングレードする必要がありません。
- すべてのツールがすべてのバージョンの SQL Server をサポートしているわけではありません。
- Idera SQL Server Deployer
- Red Gate SQL Clone
- Quest Qntfy
サードパーティ製ツールを使用する前に、必ずそのツールのライセンス要件と機能を確認してください。
SQL Server: Attach incorrect version 661 エラーには、さまざまな解決策があります。最適な方法は、個々の状況によって異なります。
sql-server