SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

C#からSQLDMOコンポーネントを使ってSQL Serverを操作する方法

SQLDMOコンポーネントを利用したスクリプトの出力

  • X ポスト
  • このエントリーをはてなブックマークに追加

データベースのバックアップ

 データベースのバックアップは以下の手順で行うことができます。

  1. バックアップ作業を実行するために、SQLDMO.BackupClassクラスのインスタンスを生成します。
  2. SQLDMO.BackupClass backUp = new SQLDMO.BackupClass();
    
  3. バックアップ作業を行うサーバとの接続を確立するために、SQLDMO.SQLServerClassクラスのインスタンスを生成します。
  4. SQLDMO.SQLServerClass sqlServer = new SQLDMO.SQLServerClass();
    
  5. 作業対象となるSQL Serverに接続します。
  6. sqlServer.Connect( "サーバ名称", 
                       "ログインユーザー名称", 
                       "パスワード" );
    
  7. バックアップ作業を行いたいDBを指定する必要があります。また、バックアップの保存場所を指定します(今回はファイル形式で保存します)。
  8. // バックアップの対象DB
    backUp.Database = "データベース名称";
    // バックアップファイルの保存場所
    backUp.Files = "バックアップファイル名称";
    
  9. バックアップの種類を指定します(今回はデータベース全体をバックアップするので、SQLDMOBackup_Databaseを指定しています。差分バックアップや、ログなども可能です)。
  10. backUp.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
    
  11. SQLDMO.BackupClassクラスのSQLBackupメソッドを実行し、バックアップ作業を行います。
  12. // バックアップ操作を実行する
    backUp.SQLBackup( sqlServer );
    
  13. バックアップ作業が完了したら、データベースとのコネクションを開放し、終了です。
  14. sqlServer.DisConnect();
    

バックアップファイルからのリストア

 逆にデータベースをリストアする手順です。

  1. リストア作業を実行するために、SQLDMO.RestoreClassクラスのインスタンスを生成します。
  2. SQLDMO.RestoreClass restore = new SQLDMO.RestoreClass();
    
  3. リストア作業を行うサーバとの接続を確立するために、SQLDMO.SQLServerClassクラスのインスタンスを生成します。
  4. SQLDMO.SQLServerClass sqlServer = new SQLDMO.SQLServerClass();
    
  5. 作業対象となるSQL Serverに接続します。
  6. sqlServer.Connect( "サーバ名称", 
                       "ログインユーザー名称", 
                       "パスワード" );
    
  7. リストアの種類を指定します(今回はデータベースのリストアを選択しています。)
  8. restore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
    
  9. リストア作業対象のDBを指定します。
  10. restore.Database = "DB名称";
    
  11. 既にDBが存在する場合、バックアップファイルの内容と置き換えるかどうかを設定します。
  12. restore.ReplaceDatabase = true;
    
  13. リストアを行うバックアップファイルを指定します。
  14. restore.Files = @"C:\Data\BackUp\backup.bak";
    
  15. ファイル数を設定します。
  16. restore.FileNumber = 1;
    
  17. SQLDMO.BackupClassクラスのSQLRestoreメソッドを実行し、リストア作業を行います。
  18. restore.SQLRestore( sqlServer );
    
  19. リストア作業が完了したら、データベースとのコネクションを開放し、終了です。
  20. sqlServer.DisConnect();
    

まとめ

 以上のように、SQLDMOを利用することでSQL Serverを操作できます。今回は触れませんでしたが、Jobの取得などを行うこともできます。

 しかし、残念ながらSQLDMOはSQL Serverの将来バージョンで削除されることが決定しています(Books Onlineで明記されています)。SQL Server 2005の場合、SQL Server Management Objects(SMO)を利用した方がよさそうです。

 次回以降、機会があればSMOについても触れてみたいと思います。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

高山 昌悟(タカヤマ ショウゴ)

今までは主に、Windowsアプリケーションの開発を行ってきました。最近はWebアプリケーションの開発を行っています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1532 2007/08/13 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング