Date: Fri, 15 Mar 2002 13:41:24 +0900
From: Shuya Adachi <who@sub.example.jp>
> ご返事、ありがとうございます。
> 早速で恐縮ですが、上記のアタッチの件でお聞きしたい事があります。
> 実はアタッチは一度試してみたのですが、こちらはエラーとなってしまいました。
> オンラインブックを見たところ、デタッチしたデータベースのみ可能と書いてあ
> りましたので、それがエラーの原因かなと思ったのですが、デタッチしたもので
> なくともアタッチは可能なのでしょうか?もし可能なら出来たらその具体的な方法
> を教えて頂けると助かるのですが・・・
>
>
どんなエラーだったでしょうか?
こちらで試しにAマシン上でデータベースTEST(Test_dat.mdf、Tes
t_log.ldf)をデタッチせずにそのままCDRに焼き、別なBマシンにコ
ピー後読み取り専用属性をクリアしてアタッチしてみたところ正常
に動作しました。もちろんサーバー名以外の設定は一緒です。
方法は、自作のプログラム(VC++,ODBC接続)上で行ないましたが、
流れは
1. データベースに接続
2. アタッチするSQL文を実行
なのでOSQLでも一緒だと思います。
if (bLogFlag == FALSE) // ログファイルがなければ
sSql.Format("Exec sp_attach_single_file_db
@dbname = '%s',
@physname = '%s'",
pszDbName,pszDbFileName);
else // ログファイルがあれば
sSql.Format("Exec sp_attach_db
@dbname = '%s' ,
@filename1= '%s' ,
@filename2 = '%s'",
pszDbName,pszDbFileName,szLogFileName);
BOOL bRet=pSqlDb->ExecDirect(sSql);
CString sErrText=pSqlDb->GetLastErrorText();
Books Onlineには
sp_attach_db は、明示的な sp_detach_db 操作を使用してデータ
ベース サーバーからデタッチされたデータベースに対してだけ実
行します。
とありますが、今回の例のようにSQLServerが壊れてしまった場合
はデタッチできませんよね。私は実際この方法で失敗したことは
ありません。
保証されていない方法になるかもしれませんがやって見られたらい
かがでしょう。頑張ってください。
あだち@スリーエス
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|