MSDE FunClub
Microsoft Data Engine FunClub
MSDE技術者向けメーリングリスト過去ログ[1027]番
 
[TOP]>[MSDE技術者向けメーリングリスト過去ログ(1027番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
Re: SQL Server7.0 でのデータベース登録方法について

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 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。