5

DATABASE.MDFファイルを SQL Server 2008 から SQL Server 2012に変換する必要がありますか?

非リリース バージョン (539) がこのバージョンの SQL Server でサポートされていないため、データベース 'Sales' をアップグレードできません。このバージョンの sqlservr.exe と互換性のないデータベースを開くことはできません。データベースを再作成する必要があります。
新しいデータベース 'Sales' を開けませんでした。CREATE DATABASE は中止されます。(Microsoft SQL Server、エラー: 950)

4

2 に答える 2

15

貼るだけでグレードアップ。LDF ファイルがない場合 (なぜ LDF ファイルがないのですか?)、以下を使用する必要があります。

CREATE DATABASE [DatabaseName] ON 
    (FILENAME = N'Drive:\path\file.mdf')
    FOR ATTACH_REBUILD_LOG;

もちろん注意点はありますが…

  • あなたが持っているのは .mdf ファイルだけなので、失礼な目覚めになる可能性があります。ファイルが SQL Server から完全に切り離されていない場合、再接続できない可能性があり、ソース サーバーに戻って適切なバックアップ (.mdf ファイルではない) を取得する必要があります。これはすべて、アップグレードしようとしている .mdf ファイルを入手した場所によって異なります。.mdf ファイルがきれいに分離されていない場合、次のエラーが発生することがあります。

ファイルのアクティブ化に失敗しました。物理ファイル名「..._log.LDF」が間違っている可能性があります。
データベースが正常にシャットダウンされていないため、ログを再構築できません。
メッセージ 1813、レベル 16、状態 2、行 1
新しいデータベース 'DatabaseName' を開けませんでした。CREATE DATABASE は中止されます。

  • データベースが 80 互換モードの場合、90 にアップグレードされます。これは、*=/ =*join 構文など、一部の作業コードが突然壊れる可能性があることを意味する場合があります。
  • データベースが 10GB を超えていて、Express にアタッチしようとすると (おそらく LocalDB は試したことがない)、アタッチは失敗します (または、アタッチは成功するが、最初の自動拡張で失敗する可能性がありますか? これもテストしていません)。
  • データベースが 2008 Enterprise / Developer で作成され、そこでのみ利用可能な機能を使用し、データベースを Standard または Express エディションに接続した場合にも問題が発生します...
  • OK、エラーメッセージから、2008年のデータベースではなく、2000年のデータベースを接続しようとしています. これを SQL Server 2012 に直接アタッチすることはできません。最初に SQL Server 2005、2008、または 2008 R2 の任意のインスタンスにアタッチしてそのバージョンにアップグレードしてから、バックアップして SQL Server 2012 に復元する必要があります。

FWIW、あるインスタンスから別のインスタンスにデータベースを移動するためのはるかに安全な方法はBACKUP/を使用RESTOREすることです (理由は、バックアップが失敗した場合でも、データベースのコピーが残っているためです。データベースを切り離して何かが起こった場合)間違っています。コピーがありません)。ただし、このより安全なアプローチを使用しても、上記の問題のいくつかは依然として当てはまる場合があります。

于 2013-03-01T17:56:54.557 に答える