• ベストアンサー

テーブル(構造)のコピー

各主要データの更新記録を別のテーブルに記録するようにしたいのですが、 元のテーブルに処理内容(登録、訂正、削除)と日時を追加するだけなので、 元のテーブルの構造がコピーできれば簡単に作れると思い、色々ためした のですが出来ません(方法が判りません)、方法を教えて下さい。 同一DB内、同一スキーマ内、別DB間でコピーが出来ればと考えています。 宜しくお願いします。

  • SEsyo
  • お礼率78% (64/82)

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

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

構造だけコピーしたいのなら、以下の方法ではだめですか? SELECT TOP 0 * INTO 新しいテーブル FROM 今のテーブル ・同一DB内、同一スキーマ内、別DB間どれでもいけます。 ・TOP 0をつけなければ、データもコピーされます。 ・追加項目はテーブルのデザインで追加しますが、それすら大変なら 以下でもいいです。 SELECT TOP 0 CONVERT(varchar(1),NULL) 処理内容, CONVERT(datetime,NULL) 日時, * INTO 新しいテーブル FROM 今のテーブル

SEsyo
質問者

お礼

ありがとうございました、お教えいただいた方法で問題ありません。 あまりにも簡単で質問する人がいなかったから、検索に引っ掛からなかったンでしょうね(^^; ありがとうございました。

関連するQ&A

  • 別のDBからテーブルをコピーする方法

    SQL Server2005 Express Edition を使っています。 異なるDB間(同じコンピュータ内)で、テーブルをコピーしたいの ですが・・・ コピー元DB名:DB_A コピー元テーブル名:dbo.顧客 コピー先DB名:DB_B テーブルのコピーは select * into ・・・ from ・・・ を使えばできそうですが、別DBの場合の方法がわかりません。 お教えいただければ幸いです。 よろしくお願いいたします。

  • (SQLSERVER) 別サーバーへテーブルコピー

    標題の別サーバーのDBへテーブルをコピー(更新)したいと考えておりますが、やり方が全く分かりませんのでお教えください。 【更新元】 販売管理サーバー OS:Windwos2008R2 SQL SERVER 2008R2 サーバー名:POS DB名:POSDATA テーブル名:POS売上伝票 【更新先】 社内開発用サーバー OS:Windwos2008R2 SQL SERVER 2012Express サーバー名:AD DB名:POS テーブル名:POS売上伝票 POS上のSQL ManagementStudeoから、AD上のSQLSERVERへのアクセスは可能な状態にしております。 ◎実装したい要件 POSサーバー上のデータを、毎日定時にADサーバー上のDBに追加更新 ※理想としては、バッチ等のスクリプトをタスクに登録し定時に実行 自分なりに調べてみたのですが、データを丸ごとコピーする場合は、"bcp"コマンドを実行すれば可能なようですが、bcpコマンドで、サーバー間のコピーの方法が良くわかりませんでした。 また、出来れば日々更新する為、データが変更されたレコードはUPDATE追加されたデータは、INSERTする事が理想です。 ※夜間のバッチ処理ですので、上記の方法が私の知識的に難しようであれば、テーブルを作り直ししてもよいと考えております。 効率的な方法をご存じの方がいらっしゃいましたらアドバイスをお願いいたします。

  • SQLServer 2008のインスタンス間DBコピーの方法を探してい

    SQLServer 2008のインスタンス間DBコピーの方法を探しています。 インスタンス1とインスタンス2に同じテーブル構造(名称も同じ)のDBを用意しています。 インスタンス1のDB(以下、DB1)をインスタンス2のDB(以下、DB2)に コピーする方法を模索しています。 SQLServerのバージョンは2008で、Standardです。 できればDB1を止めることなく、DB2にコピーできるよう考えています。 ご存じの情報がありましたら、教えていただければと思います。 よろしくお願いします。

  • テーブルの中身を違うテーブルへコピー

    お世話になります。 SQLについて質問があるのですが・・・。 Aというテーブルがあり、何件かデータが入っています。 そのAテーブルにフィールドを2つ新たに追加したいのです。 ALTER TABLEは使わずに、 以下の様な操作をしたいと考えております。 1:Aテーブルを違う名前に変更。  もしくはテーブルを丸々コピー。 2:テーブルBを作成。   (テーブルAのフィールドに2つフィールド追加した内容) 3:テーブルBにテーブルAの内容を丸々コピー。   その際、新規に追加した2つのフィールドには、初期値として、何かの文字or数字を入れる。 4:Aテーブルを削除 と、いう感じです。 作成はINSERT、削除はDROPを使えばいいのかなーって 思っているのですが、 テーブル名の変更や、テーブルの内容のコピーが ちょっと分かりません。 上記について、ご教授の程、よろしくお願いします。 なお、DBにはSQL Serverを使用しています。

  • アクセスのテーブルのコピー

    まったく同じ構造のアクセスのデータベースがあります。 データの内容は、違うものです。 そのテーブルの内容を一方にまとめたいのですが、 追加クエリを使うのと、テーブルのデータをコピーして 一方に貼り付けるのでは、何か、結果がことなるのでしょうか? よろしくお願いします。

  • 異なるDB間の異なるテーブルの特定レコード間のリンクは可能か?

    Window98, Access2000を使用しています。 現在(1)住所録DBと(2)家計簿DBをAccessにて作成しています。家計簿DBは長年使っていますのでかなりの情報量です。(1)の住所録DBは先日から作り始めたばかりです。そこで質問させていただきたいのですが、(2)の家計簿DBにあるAccount名と住所録DBにある会社名とリンクをさせたいのですがどのようにしたらよいのでしょうか? 外部テーブルとしてリンクさせるテーブルを新たに新規Account名として追加して家計簿DBにつくることは出来ますが、完全な目的達成の問題点として、 1)家計簿DB内にあるAccount名の数は1000件を超えていますが、そのそれぞれのAccount名テーブルはかなり簡素なものなので、そのテーブル構造及びフィールド(住所、担当者(個人名)、交信情報(メモ))やそれぞれのリンク構造は住所録DBを使いたい。但し、1000件以上のAccount内容全てにその詳細情報は不要で、家計簿DBの特定のAccount名につき住所録DBの会社テーブルにある特定のレコードとリンクさせ、内容を充実させたい。即ち異なるDB間で特定のテーブル内にある特定のレコード間のリンクは可能か否か? 2)家計簿DB内のAccount名は会社名もあれば個人名もあります。一方住所録DBには、家計簿DBのAccount名テーブルの該当リンク先テーブルとして、会社名は (a)会社テーブル、個人の場合は (b)担当者(個人)テーブルのように2種類のテーブルが存在していますが、それぞれ該当レコードにリンクさせる事は可能か? 上記1)、2)に付き技術的可能性の可否について、或いは目的達成のためのアイデアが頂ければ喜びます。宜しくお願いします。

  • アクセスのテーブルにリンクできなくしたい

    アクセス97です。 DBのテーブルを見れないようにはできたのですが、 他に別のDBを作成し、元のDBのテーブルにリンクしてしまうと いともたやすくテーブルを見ることができてしまいます。 元のDBには、パスワードやグループファイルで権限を付けたくないです。 テーブルのリンクを許さない方法が何か無いでしょうか? また、テーブルが誰かによってリンクされているかどうかが 分かる方法ってあるでしょうか? よろしくお願い致します。

  • テーブルコピー処理

    早速質問させていただきます。 VB2005+MSDE2000でWindowsアプリを作成しています。 Aテーブル(本番テーブル)とBテーブル(ミラーテーブル)がありまして、 BテーブルはAテーブルと同列を持っており最終列に更新時刻が追加されています。そしてAとBともに年月列(200610等)を持っています。 実現したい処理は、年月度の売上データをミラーテーブルにコピーする処理です。 1.年月を元にAテーブルからデータを抽出する。 2.Bテーブルに対してトランザクションをかける。 3.年月を元にBテーブルから削除する。 4.1で取得したデータをBテーブルに追加する。  (この時、Bテーブルの最終列に更新時刻を入れる。) このような処理を行う際に、処理1は単純にセレクトなのでSqlDataAdapterでDataTableに流し込むのが最適かなと思います。 処理2についてもSqlTransactionを開始すればOK。 処理3はトランザクション内で削除を実施。 最後の処理4をどのように実装すればよいのか不明です。 SqlDataAdapterを使って処理1で取得したDataTableをBテーブルに追加したいのですが可能でしょうか? このあたりを具体的にご教授のほどお願い致します。

  • ACCESS97のテーブル特性(?)について

    ACCESS97を使用しています。 あいまいな質問になるのですが、 フォームの中でテーブルを使用しています。 (使用というのは、データを追加、削除、更新(変更) 等です。) そのテーブルに項目を追加した時、 フォームでの実行ができなくなりました。 追加した項目を削除しても、その実行はできないままです。 今回の質問は、 Q1 あるテーブルに項目を追加した後で削除した場合   (一旦変更して元に戻した場合)   テーブルの特性(?)等は 変化してしまうのでしょうか? 更新日時は変化します。変更前にコピーを取っておいて 変更後に上書きすれば上手くいきます。 (最初から全く改造しなければOK) Q2 フォーム(ロジック)の中で あるテーブルでしか実行できない ようになっているのでしょうか? そういった事は 可能でしょうか?  (ロジックを見たのですがわかりませんでした。   項目が追加した状態で実行できない点より   元に戻した(追加→削除)のに実行できない という点が わかりません。) 宜しくお願い致します。

  • Excelピボットテーブルのデータ更新について

    元のリストのデータを変更して、「データの更新」ボタンをクリックすると変更が反映され、ピボットテーブルも更新されますよね。 ところが、元のリストの下にデータを追加していった場合はピボットテーブルに反映されません。。。 これはその都度ピボットテーブルのリスト範囲を選択しなおして訂正するという方法をとるしかないのでしょうか。 最初からリスト範囲を広めにとると、テーブルに空白ができてしまいます、何か方法があるのでしょうか?