MICROSOFT SQLServer2000で質問です。


ユーザーデータベースのファイルを移動しようとしたところ、
それぞれ次のエラーが返されます。

alter database USERDB modify file(name='USERDB_DATA',filename='D:\mdf\userdb.mdf')
=>MODIFY FILE に失敗しました。物理名を指定しないでください。

alter database USERDB modify file(name='USERDB_DATA')
=>ファイル 'USERDB_DATA'の MODIFY FILE に失敗しました。ファイルごとに少なくとも 1 つのプロパティを指定してください。

alter database USERDB modify file(filename='D:\mdf\userdb.mdf')
=>この CREATE/ALTER DATABASE ステートメントではファイル オプション NAME が必要です。

移動前にオフラインにしてみると、"データベース 'USERDB' はオフラインなので開けません。"とのエラーになります。
移動させるSQLコマンドの正しい構文をご教示下さい。
(指定しろとかするなとか一体...結局デタッチ・アタッチで済ませましたが、悔しいもので。。)

回答の条件
  • 1人3回まで
  • 登録:2007/12/16 07:34:11
  • 終了:2007/12/21 22:43:37

回答(1件)

  • id:HISI
    ちなみに、tempdbはこの方法で問題なく移動できました。
    以前同じことをやったことがあり、そのときはこのようなことでひっかかった記憶はないのです。
  • id:mj99
    う~ん、データファイルの物理名は作成後の変更はできないと思っていましたが、、、
    (リストアやアタッチは例外で)

    tempdbは特殊なんだと思います。
    tempdbはSQLServer起動時に削除>作成されるので、物理名を変更した場合、再起動後、新しい名前が有効になるはずです。
  • id:HISI
    >>mj99さん
    コメント有難う御座います。
    以前一般DBファイルにも出来た記憶があったもので(記憶が怪しいのかもしれませんが...)
    ちょっとした文法間違いかな...といった感じで質問してみました。
    ちなみに、SQLServer2005は全く問題なくできます。
    SQLServer2000のほうは、運用を開始してもうDBファイルを動かすことがしばらくなくなったので
    何かの機会にトライしてみたいと思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません