• ベストアンサー
  • すぐに回答を!

VBでSQLServer2000のあるテーブルをバックアップするには?

初心者なので質問の意味が伝わるかどうか心配です。 今、SQLServer上にテーブルAがあるとします。 それを丸ごとバックアップしたいと考えます。(方法いろいろ) 今、私は単純にテーブルAと同じ構造のテーブルを VBからCreate Table でテーブルBを作って、KEYも設定して、 そのあとテーブルAの中身をテーブルBにINSERTするという 方法をとっています。 Create Tableする前にDrop Table していて もしそのときテーブルAが存在していないときはエラーになるのですが、 そのとき帰ってきたSQLServerのエラーコードならResume Nextする ようにしています。 こんな方法は普通はとらないのだと思います。 初心者ながら何だか危なげな方法だなと感じていますし・・・。 他に良い方法があれば教えてください。 バックアップするテーブルはどのような形式になっても構いません。 例えば、今の私の方法のように同じくサーバー側にテーブルとして 保存するのもありだし、固定長のテキストファイルとしてクライアント に保存するのもOKだとします。 ちなみに固定長のテキストとして保存する方法も分かりません(涙) どなたか教えてく下さい。申し訳ありません。

共感・応援の気持ちを伝えよう!

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • bugmaru
  • ベストアンサー率38% (76/195)

そのやり方でも、目的が達成できていれば良いと思います。 テーブルが存在するかどうかの確認方法として組み込みストアドプロシージャ を使う方法もあります。 例えば、sp_tablesと言うストアドプロシージャ。他にもオブジェクトの存在 確認に使えるストアドプロシージャがあったと思いますので探してみて下さい。 尚、ストアドプロシージャに関してはTransact-SQLのHelpを参照してください。 テキストバックアップの方法としてVBからisqlwコマンドをCallする方法も あります。CSV形式でデータを保存できます。 isqlwコマンドはその他にCSVデータの取り込みや、SQL分とか実行できます。 何よりコマンドラインツールなのでバッチ処理として記述できるので便利です

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • SQLserverでの列の削除について

    SQLserver2000にてSQL文の練習をしている、データベースの初心者です。 SQLserverでは、直接列の削除ができないと聞きました。 ---------------------------------------- ALTER TABLE テーブル名 DROP 列名 ---------------------------------------- ↑このようにはできませんでした。 そこで、いったん削除したい列以外の列がある別のテーブルをつくってからテーブル名を変更する方法として、 1,新しいテーブルを、元のテーブルからデータをコピーして作る。 2,元のテーブルを削除 3,新しいテーブルの名前を元の名前に変更。 という手段を使えばよいという情報を得ましたが、1の部分がどうしてもできません。 (テーブル削除、テーブル名の変更はできました) ---------------------------------------- CREATE TABLE 新しいテーブル名 AS SELECT 削除した列以外の列名 FROM 元のテーブル名 ---------------------------------------- このようにすると、 ---------------------------------------- サーバー : メッセージ 156、レベル 15、状態 1、行 2 キーワード 'AS' 付近に正しくない構文があります。 ---------------------------------------- といわれてしまいます。 EnterpriseManagerを使わずにやる方法が知りたいです。 正しいSQL文をどうかご教授ください。 どうぞよろしくお願いいたします。 ※ちなみにOSはWIN2000を使っています。

  • PostgresSQLの条件分岐

    初めて質問をします。よろしくお願いします。 環境はLinaxです。 テキストファイルにDROP TABLEとCREATE TABLEの命令を書いておき、 それをpsql \i test.txt で読み込み、テーブルを作成したいのですが、 下記のテキストの内容だと、テーブルが存在しない場合、エラーが発生します。 テーブルが存在すれば、DROPしてCREATE、 テーブルが存在しなければ、CREATEのみ という動作をさせたいのですが、どのようにしたら良いでしょうか? よろしくお願い致します。 テキストファイルtest.txt --------------------- DROP TABLE testID; CREATE TABLE testID ( id TEXT, name TEXT, ); ---------------------

  • SQLserverでのUPDATE文について

    SQLserverで下記のようにテーブルがある場合、 TABLE_Bの単価をTABLE_Aの単価にセットしたい場合、 どのようにUPDATE文を記述すればよいでしょうか? TABLE_A 商品 色 単価 数量 備考   TABLE_B 商品 色 単価 条件:商品と色が一致するもの TABLE_Bには重複データは無いものとする。 クエリーアナライザーで下記のように記述すると エラー「列名が無効です」となりました。 UPDATE TABLE_A SET TABLE_A.単価 = (select TABLE_B.単価 from TABLE_B where TABLE_A.商品 = TABLE_B.商品 and TABLE_A.色 = TABLE_B.色) どのような記述をすれば良いのでしょうか?

  • Accessでのテーブルのコピー

    はじめまして、よろしくおねがいします。 リンクテーブルのバックアップテーブルを作りたいのですが、 Accessで出来るでしょうか? Access2003にて、 「Create table TABLE_A as select * from TABLE_B;」 のクエリを実行しようとすると、 「CREATE TABLEステートメントの構文エラーです」 とエラーが出ます。 TABLE_Bテーブルは、他のDBからのリンクテーブルです。

  • EnterPrise ManagerでCreateTableのSQL出力

    SQLSERVERを使い始めた初心者で、調べてはいるのですが うまくいかないので質問させて頂きます。 SQLSERVER2000で既存のテーブルについて、 SQLのCREATE TABLE文をtextで出力したいのですが、 EnterPrise Managerを使用してどのように出力するれば よいかわかりません。 アドバイス頂けますと助かります。 よろしくお願いします。

  • 任意のテーブルをdrop tableしたい

    こんにちは,よろしくお願いします。 日々の業務アプリでOracleDB上にCreateされる無数の ワークテーブルを、一日一回dropするDOSバッチを考えております。 テーブルの先頭文字列は「WAK」なのですが、それ以降 年月日字分秒を付加しているために、dropするにもテーブル名を 特定できません。 テーブル名称例) WAK20060112122354 WAK20060112144852 ・・・・ drop table コマンドで、ワイルドカードのようなものを 指定できますでしょうか? イメージとしては、「drop table WAK%1*」(%1はYYYYMMDD)の ような感じです。 環境はWin2003R2にOracle10g(10.1.0)を乗せています。 よろしくお願いします。

  • テーブルを、たとえそれが存在しなくてもメッセージが出ないで、削除したい

    テーブルを、たとえそれが存在しなくてもメッセージが出ないで、削除したい。 Access2007を使っています。仮にテーブルAとします。テーブルAが存在している場合は、drop tableなどで簡単に消せます。が、存在しない場合は、エラーまたはメッセージが出てしまいます。やりたいことは、テーブルAが存在してもしなくても、メッセージが出ないようにして、テーブルAが存在しない状態にしたいのですが。SQLビューで(または簡単に)実現する方法はあるのでしょうか? 初心者のため、些細なことでつまづいています。

  • mysqlデータベースリストア

    MySQL初心者です。 基本的な質問ですが、教えてください。 MYSQLデータベースのバックアップは、コマンドラインからmysqldumpでバックアップを行うと思います。 CMD>mysqldump -u(ユーザーグループ) -p(パスワード) (データベース名) > (バックアップファイル名).sql バックアップSQLを使って再度リストアで入れなおす場合は、 drop database (データベース名);と create database (データベース名); を実行してから行う必要があるのでしょうか? (バックアップファイル名).sqlの中身を見てみると、 CREATE TABLE '(テーブル名)' (・・・・ ・・・)の前に DROP TABLE IF EXISTS '(テーブル名)'; のようにテーブルのdropをしてからの処理はあるのですが。

    • ベストアンサー
    • MySQL
  • テーブルのバックアップについて

    回答がなかったので再度質問します。 7月30日にAテーブルをdropして主キーなど項目追加した形でAテーブルを新たに作成しました。 その際にデータのバックアップは必要ないということでとっていませんでした。 ところがやっぱりデータは欲しいということになったのですが、古いAテーブルのデータの復旧は可能でしょうか?環境はOracle9iで詳しい設定はどこを確認しなければならないのかよくわかっていません。 どなたかアドバイスお願いします。

  • テーブルを作ろうとしたら。

    下記のようなエラー文が表示されます。 NOTICE: CREATE TABLE will create implicit sequence 'テーブル名とフィールド名をくっつけたような名前' fo r SERIAL column 'テーブル名.フィールド名' NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'テーブル名_pke y' for table 'テーブル名' このデーターベースには他にもテーブルがありますが、 名前が主キーで名前が同じものがあるからエラーがでると思い、名前を変更して実行しましたが、同じような エラーがでました。 テーブル名とフィールド名をくっつけたような名前はもともとなかったものなのですが、実行後にデータベースに作成されました。 どなたかわかる方がいたら、ご教授お願いいたします。