旧データベース(A)から新データベース(B)に
データを移します。
AとBはテーブル、フィールドはまったく同じです。
ちなみにAccessで作っています。

AからBにデータを移す場合の
簡単なコーディングってありますか?

AからSELECTして、なにかワークに
入れておいて、また、ワークから
BにINSERTする方法しか思い浮かばないので
お願いします

このQ&Aに関連する最新のQ&A

A 回答 (2件)

前の方と一緒なのですが、サンプルを・・・(^^;


リンクテーブルを張ったほうがいいのだけれども・・・
Ex1 外部テーブルの参照をする場合

Insert Into [Table名] From [Table名] In [Aのフルパス] 
Aのフルパスにはほんとにフルパスをいれちゃってください。SQLリファレンスの[IN句]に載っています。
Ex2
Insert into [Table名] From [リンクテーブル名]
リンクテーブルを張った例です。このほうが速いと思います。
    • good
    • 0

こんにちは。

maruru01です。

Bに何もデータがないのなら、Bのテーブルは削除して、Aのテーブルをインポートするのではダメですか。
もしリレーションとか張ってあってテーブルを削除したくないなら、Bのテーブルを削除せずにAのテーブルをインポートして(○○1という名前になる)、追加クエリを作って実行すればいいと思います。
ちなみにBのテーブルにすでにデータが入っている場合は、追加クエリだとユニークなフィールドが重複したデータは追加しません。

コードで書く場合、INSERT INTO文を使い、データベースが異なる場合は、IN句をつけます。

では。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qフェッチでデータが上書きされます

こんにちは。perl + html + mysqlのコーディングで悩んでいるので質問させてください。
複数フィールド+複数件(例えば13フィールド+3件)のデータがテーブルに存在する時、SELECT文でそのデータを取得したいとします。
分からない所はフェッチの部分なのですが、

$i=0;
while($selectdata[$i]=$sth->fetchrow_arrayref(
$i++;
}

----[中略]-----

for($i=0;$i<$rows;$i++){
print "[SELECTデータ->$i]\n";
for($j=0;$j<13;$j++){
print "$selectdata[$i][$j]\n";
}
print "<BR>\n";
}

表示されたデータが3件とも、3番目のデータが表示されます。
フェッチで取得したデータを配列にいれる段階で、上書きしているような気がするのですが、具体的にどこが悪いか分かりません。
ご教授お願いいたします。

こんにちは。perl + html + mysqlのコーディングで悩んでいるので質問させてください。
複数フィールド+複数件(例えば13フィールド+3件)のデータがテーブルに存在する時、SELECT文でそのデータを取得したいとします。
分からない所はフェッチの部分なのですが、

$i=0;
while($selectdata[$i]=$sth->fetchrow_arrayref(
$i++;
}

----[中略]-----

for($i=0;$i<$rows;$i++){
print "[SELECTデータ->$i]\n";
for($j=0;$j<13;$j++){
print "$selectdata[$i][$j]\n";
}
...続きを読む

Aベストアンサー

いや、
>$i=0;
>while($selectdata[$i]=$sth->fetchrow_arrayref(
>$i++;
>}
これを

my @selectdata;
while ( my $array_ref = $sth->fetchrow_arrayref ) {
push @selectdata, [ @{$array_ref} ];
}

みたいな感じで受け取ったリファレンスを一旦デリファレンスして、
その要素を含む新しい無名配列を生成すれば良いと思いますけど。

QVB データテーブルA列とB列があった時、B列の1行目から1stepずつデータを入力していきたい

AddDataTableRowメソッドにて
1月として、A列は日付で先に31日分の行が作成されます。その際にB行はNothingで生成しました。
私は、A列はそのままでB列の1行目から1つずつ書き込んでいくコーディングが知りたいです。
現在はAddDataTableRowのためA列の最後の行の次の行が追加され入力されてしまいます。

Aベストアンサー

whereで列BがNothingだけにして、列AのMinの値を取得
列A指定して、狙い打ちでUpdate

QiPhone「データの取得方法」について

こんにちは。先々月くらいにiPhoneを購入した者です。
iPhoneの「データ取得方法」について質問があります。
予想外にパケット通信料の請求が多かったため、サファリや天気など通信
を必要とするアプリを使用しないようにし、「データの取得方法」をフェ
ッチの15分ごとに変更しました。ただ、「データの取得方法」のプッシュ
とフェッチの違いがよく分かっておらず、プッシュをONにしたままが通信
の節約になるのか、それともフェッチの15分間隔(若しくは30分)が良い
のか分かりません。メールの量は送受信併せて1日30~40で、使わない時
は全く使いません。ただ緊急を要するメールもあるので手動でのメール
取得は考えていません。
前述したように、プッシュとフェッチどちらがパケットの節約になるのか
教えていただきたいと思います。その他パケット通信節約のための小ネタ
などがあれば教えてください。
よろしくお願い致します。

Aベストアンサー

ExchangeServerやMobileMeなど、サーバ側から自動的に送られてくるメールがプッシュメール、通常のメールのように自分から取りに行くメールがフェッチです。
プッシュであれば一定時間ごとにメールボックス確認に行く手間がないため、その分安くはなります。
が。通常のメールをプッシュで使うことはできないので、基本的に選択肢はあってないようなものです。
ExchangeServerやMobileMe使ってなければ、回答としては変わらないってことになります。

ただ、基本的に通信をおこないまくる携帯なので、パケット通信はかかるもんだと思っておいたほうがいいです。

Q異なるデータベースでのSELECT INTO

昨日と同じところでつまずいているのですが、
みなさまご助言お願いいたします。

タイトルのようにSELECT INTO構文を
2種類のデータベースにまたがって使用したいと思っています。

Dim adoConA As ADODB.Connection 'データベースA
Dim adoConB As ADODB.Connection 'データベースB
Dim rs As ADODB.Recordset
Dim sSQL As String

sSQL = "SELECT * FROM 顧客情報"

' データベースAからテーブル取得
rs.Open sSQL, adoConA

' 取得したテーブルをデータベースBに新しいテーブルとして保存
?????

実際には、SELECT INTOは無理かなと思い、
上記のように、一度レコードセットに取得して
それをテーブルBに保存すると言う方法を行おうと
思っているのですが、やり方がわかりません。

もちろん、別の方法でも可能ならば
別の方法でも構いませんので、
おわかりになるのであれば教えてください。

昨日と同じところでつまずいているのですが、
みなさまご助言お願いいたします。

タイトルのようにSELECT INTO構文を
2種類のデータベースにまたがって使用したいと思っています。

Dim adoConA As ADODB.Connection 'データベースA
Dim adoConB As ADODB.Connection 'データベースB
Dim rs As ADODB.Recordset
Dim sSQL As String

sSQL = "SELECT * FROM 顧客情報"

' データベースAからテーブル取得
rs.Open sSQL, adoConA

' 取得したテーブルをデータベースBに新しいテーブルとして保...続きを読む

Aベストアンサー

> データベースは開発、データベースA、BすべてSQL SERVER 2000を使用しています。

であれば、出力先のテーブルをCREATE TABLE してから、
INSERT INTO ........ SELECT ........ FROM ........
で処理するのが最善だと思います。


> 一度レコードセットに取得してそれをテーブルBに保存する
性能面でお奨めできません。


# リンクサーバーの使用方法は、他の方のコメントに期待。(^人^;

QPL/SQL内の共通関数の引数にフェッチしたレコードごと渡すのは可能?

カーソルでレコードを検索し、フェッチします。
その後、INSERTする共通関数を呼ぶのですが、
フェッチしたレコードの値でINSERTしたいのです。
引数で1コずつ渡すと数が多いので、フェッチしたレコードごと引数で渡せないかと
それって可能ですか?

Aベストアンサー

こんにちは。

 共通関数の引数にカーソルのレコード型(cursor_name%ROWTYPE)を
使用すればよいと思います。
ただこの場合は、汎用性に乏しいのですが・・・。

 よって個人的にはINSERT先のテーブル名のレコード型が
お勧めです。[テーブル名%ROWTYPE]
 カーソルのレコードから移し変える処理が必要になりますが、
登録処理が簡単に記述できますネ。
(INSERT INTO TAL_NAME VALUE record_type;)

Qレコードセットの値 SelectとINSERT,UPDATE,Deleteで異なる?

VB6でSQL Server2005をADOでアクセスしていますが、基本的なことですが、SELECT文の場合はrs.closeしてもエラーになりませんが、INSERT,UPDATE,DELETEの場合は、rs.closeとすると、
実行時エラー3704
オブジェクトが閉じている場合は、操作は許可されません。
というエラーメッセージが表示されます。

SQLは以下のように実行しています。
Call rs.Open(cobSQL.Text, cn, adLockOptimistic)

VB6でSQL SERVER2005(もしくは2000)でデータベースアプリを作成するのに参考になる良書などご存知でしたら教えてください。

また、VB6でADOは、ネイティブにSQL Server2005にアクセスできるのでしょうか?まだADOやデータベースの概念が良くわかっていないため、質問自体がおかしいかもしれませんが、VB6で高速にSQL SERVER 2005で処理させたいのが私の現時点での目標です。

Aベストアンサー

更新系(UPDATE、INSERT、DELETE等)のSQLでは、
レコードセットは使用してはいけません。

レコードセットを使用するのは、参照のみです。
更新系は、コネクションオブジェクトのExcuteメソッドを使用します。
つまり、レコードセットは、開く必要はなく、閉じる必要もありません。
(例)
Cn.Execute "insert into テーブル名 (XX1,XX2,XX3)values(ZZ2,ZZ2,ZZ3)

ちなみに、VB6とSQLサーバーの動作イメージとしては、
以下1、2を参考程度に。

1参照の場合(往復)
(1)VB6 → SQL文投げる  → SQLサーバー
(2)VB6 ← レコード取得  ← SQLサーバー

2更新系の場合(片道)
(1)VB6 → SQL文投げる → SQLサーバー(更新)

参考URL:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_s12.htm

Qデータハザードについて(パイプライン)

こんにちは。コンピューターアーキテクチャのパイプラインの項目の勉強をしていて、データハザードについて分からない問題があったので、質問させていただきます。

以下の二つのパイプラインの動作がよくわかりません。


基本的にはフォワーディングによって解決するデータハザードですが、メモリアドレス生成のときはフォワーディングは間に合わないので、結果の格納(W)が終わらないと命令フェッチ(F)ができないそうです。つまり
add r1, r2 .r3    F D E W
lw r4, dpl(r1)         F X X DEW

となるそうです。しかし
ld r2, c(r1)
subi r1, r1, 4
のように「ロード命令の次に算術命令」という順番ですと、ハザードは生じないそうです。


下の場合は上と違いr1のデータを更新するだけなのでフォワーディングによって改善ができるという解釈でよろしいのでしょうか?
上は本に書いてあったものなのですが、下のはインターネットから調べたものなのであっていない可能性があるので質問しました。

ちなみに両者ともロード命令の場合なのですが、ストア命令でも同じような振る舞いになるのでしょうか?

よろしくお願いいたします。

こんにちは。コンピューターアーキテクチャのパイプラインの項目の勉強をしていて、データハザードについて分からない問題があったので、質問させていただきます。

以下の二つのパイプラインの動作がよくわかりません。


基本的にはフォワーディングによって解決するデータハザードですが、メモリアドレス生成のときはフォワーディングは間に合わないので、結果の格納(W)が終わらないと命令フェッチ(F)ができないそうです。つまり
add r1, r2 .r3    F D E W
lw ...続きを読む

Aベストアンサー

「データハザード」ってのは, 端的にいうと「ある命令で得られた結果をそのあとの命令で使うために, 前の命令が終わるまで『あとの命令』の実行を止めなきゃならない」って状態.

ここに挙がっている例だと, 上のやつは add で得られた r1 を次の lw で使うから, 「r1 が得られるまで lw を実行できない」ということになる. ところが下の場合には ld の結果である r2 はそのあとで使わないから, ここで見えている分についてはハザードは生じていない (さらにあとの命令で r2 を使っていたら, ld とのタイミングでハザードが起きるかもしれん). あるいは,
ld r1, c(r2)
subi r1, r1, 4
なら明らかにハザードが起きる.

そして, はっきりいうと「ロードの場合はメモリからレジスタにデータを移すので算術命令のデータがメモリに書き込まれるまではストールしてしまう」というのは何をいっているのかよくわからん. もっというと「算術命令のデータがメモリに書き込まれる」とか「算術命令がメモリにデータを書き込む」とかの意味がわからん. どういうこと? どうせ MIPS かなんかの RISC なんだろうから, そもそも「算術命令の結果」がメモリに書き込まれることはありえないよ.

それぞれの命令を実行するために「確定していなければならないデータ」がなんなのか, そしてそれらが「どのタイミングで確定するのか」を確認してください. ここの例だと「add の結果がどこで出てきてどのタイミングにフォワーディングできるのか」とか「メモリアドレスをどのタイミングで生成するのか」とか, です.

とはいえ, 上の例で「どのステージが同時に起きているのか」がわからないんだよね.... add の D と lw の F が同じクロックと思っていい?

参考URL:http://akademeia.info/index.php?%A5%D1%A5%A4%A5%D7%A5%E9%A5%A4%A5%F3%A5%CF%A5%B6%A1%BC%A5%C9

「データハザード」ってのは, 端的にいうと「ある命令で得られた結果をそのあとの命令で使うために, 前の命令が終わるまで『あとの命令』の実行を止めなきゃならない」って状態.

ここに挙がっている例だと, 上のやつは add で得られた r1 を次の lw で使うから, 「r1 が得られるまで lw を実行できない」ということになる. ところが下の場合には ld の結果である r2 はそのあとで使わないから, ここで見えている分についてはハザードは生じていない (さらにあとの命令で r2 を使っていたら, ld とのタイミングで...続きを読む

QブックAシートAにブックBシートBをコピーしたい

VB.net VB.2008 にてプログラムしています。

ブックAのシートAにブックBのシートBをコピーするには、
どうしたら良いでしょうか?

ブックAシートAには他のシートへの参照が入っています。
ブックBシートBの数値を入れたら、ブックA内の他シートに参照された数値が行き渡るように
したいのですが、行き詰ってます。


 Worksheet.Copy()


だと、Before,Afterの設定になり、そのページズバリにコピーができません。

お知恵をお貸しください。
お願いします。

Aベストアンサー

実際に処理を実行するのは Excel なんだから、Excel VBA の
Copy メソッドのヘルプで確認すればいいじゃない???
Worksheet.Range.Copy(Destination) だよね。Cells で
シートの全セルを対象とした Range を取得するか、使用範囲
のみにするか、そのあたりはお好きなようにどうぞ。

Q「スーパーフェッチ」と「プリフェッチ」の違い

Vistaで「スーパーフェッチ」機能とはよく使用するアプリケーションをメモリにプリロードするとありますが、XPの「プリフェッチ」機能にも似たような記載がありました。
この両者の機能で決定的な違いは何処でしょうか?
ご存知あれば教えて頂ければ幸いです。

Aベストアンサー

どのデータをプリロードするかを選択する戦略が賢くなったということです.

XPでは単に最も最近使ったデータを優先的に選んでいましたが,Vistaでは今までの履歴を学習してより最適な(次に必要になりそうな)データを選ぶようになりました.

参考URL:http://pc.watch.impress.co.jp/docs/2007/0226/mobile366.htm

QVB.NET(ASP.NET)でページAからページBに新しいWindowで飛んだ後ページBにページAのDataGrid情報をもっていく方法

VB.NET(ASP.NET)のWebアプリケーションを
VB.NET2003で開発しているのですが
ページAに表示しているDataGridを新しいWindowで表示したページBのDataGridに表示させたいんです。
Session情報に入れようと思いましたが入らない・・
どうしたらよいでしょうか?

Aベストアンサー

お世話になります。

各画面で全く同じものを表示するのなら、
ユーザコントロールか、Web カスタムコントロールにしてしまうのが効率がよいと思います。
それで、その上で DataSource に使っている
DataSet やら DataTable やらを Session で渡すとか。

> Session情報に入れようと思いましたが入らない・・
これは具体的にどうして入らないのでしょうか。


人気Q&Aランキング