
MS SQL Server自体が初心者なので、初歩的な質問だと思いますが、
Enterprise Managerを使って、Aというデータベースの「tbl」というテーブルの内容を、「tbl_new」というテーブルに全てコピーするには、どうすればよいのでしょうか?フィールドの内容は同一です。
ちなみに、両方のテーブルにいくつかデータが存在していて、「tbl」が正しいデータになっています。
同じキーがあれば更新して、キーがなければ追加したいのです。
一度テーブルを消して、コピーするなどの方法が依存関係の都合でできないので、データだけ移したいと思っています。
Enterprise Managerのどの機能を使えばよいのかもわからない状態ですが、よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
新しいクエリを使ってSQL文を組み立てて下さい。
下記はキーが2項目データーが2項目の場合の例です。delete from tbl_new where not exists(select ' '
from tbl where tbl_new.キー1=tbl.キー1 and tbl_new.キー2=tbl.キー2)
go
update tbl_new set データ1=tbl.データ1,データ2=tbl.データ2
from tbl_new,tbl where tbl_new.キー1=tbl.キー1
and tbl_new.キー2=tbl.キー2
go
insert tbl_new select * from tbl where not exists(select ' '
from tbl_new where tbl_new.キー1=tbl.キー1 and tbl_new.キー2=tbl.キー2)
go
です。
この回答への補足
> 新しいクエリを使ってSQL文を組み立てて下さい。
Enterprise Managerにそのような機能があるということでしょうか。
その機能の使用方法がわかれば、提示して頂いたSQL文でいけるのでしょうか。
ちょっと気になったのですが、
> delete from tbl_new where not exists(select ' '
の「' '」ってなにをセレクトしているのでしょうか?
No.1
- 回答日時:
> 同じキーがあれば更新して、キーがなければ追加したいのです。
キー以外の列すべてを更新するという前提です。
1)状況の把握。「tbl」の件数、「tbl_new」の件数、「tbl」と「tbl_new」のキーが一致する件数
1)データのバックアップ。DTS使うなり、ACCESSでリンクテーブル張ってインポートするなり。
3)「tbl_new」のレコードのうち、キーが「tbl」にあるものをdelete
4)「tbl」にあるものすべてを「tbl_new」へinsert
5)結果を検証
でしょうね。
この回答への補足
解凍ありがとうございます。
件数は共に数万件あります。バックアップはデータベース全体をバックアップしています。
3が難しいですね。やり方がいまいち・・・
3が出来れば4は出来るのでしょうけれども、なんともはや・・・
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Date型にNULLをセットしたい V...
-
Accessで日付が変わると番号が...
-
ADO VBA 実行時エラー3021
-
Oracleでの文字列連結サイズの上限
-
OracleのSQL*PLUSで、デー...
-
GROUP BYを行った後に結合した...
-
ACCESSの集計クエリで3件ある...
-
ACCESSで大量の更新を行うと「...
-
ADOでエクセルからアクセス...
-
PHP+MySQL
-
Excelで、改行がある場合の条件...
-
oracleの分割delete
-
キーが同じを複数行を1行にま...
-
Accessで別テーブルの値をフォ...
-
Access終了時の最適化が失敗?
-
ACCESSのクエリで同じSQL文だが...
-
エクセルのピボットテーブルの...
-
データセットのレコード更新が...
-
SQL GROUPで件数の一番多いレコ...
-
ワードの差込印刷で教えて下さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECTで1件のみ取得するには?
-
Date型にNULLをセットしたい V...
-
SQL>UPDATEと同時にその件数を...
-
sqlplusの処理が途中でとまる
-
☆☆☆☆SQL Olacle 3つ以上の文字...
-
oracleのinsert select性能
-
[Access]時間帯の重複チェック
-
ORDER BY 半角カナ
-
異なるDB間でのJOINやVIEWについて
-
PostgreSQLで小数点以下を処理...
-
AccessVBAでリンクテーブルの参...
-
重複しているデータを取得したい
-
連番のつけ方
-
SQL-文字列操作について
-
存在するデータの一覧を出すには?
-
SQLでのレコード抽出について、...
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
OracleのSQL*PLUSで、デー...
-
ADO VBA 実行時エラー3021
おすすめ情報