匿名質問者
匿名質問者匿名質問者とは「匿名質問」を利用して質問した質問者。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら

SQLServer8.0にてデータのUPDATEとINSERTを同時に行いたいと考えています。

以下の条件がかなうSQLを作成したいのですが、うまいやり方が思いつきません。SQLそのものもそうですが、SQLを作成するための考え方などについてもご教授いただけると幸いです。

条件:
・AテーブルとBテーブルがあり、Aテーブルのデータを更新します。
・AテーブルとBテーブルで主キーが一致するデータが存在するときは、BテーブルのデータでAテーブルをUPDATEします。
・AテーブルとBテーブルで主キーが一致しない(Bテーブルにしかデータが存在しない)場合は、BテーブルのデータをAテーブルへINSERTします。
・Aテーブルにしか存在しないデータは特に更新されません。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/08/21 16:52:23
  • 終了:2013/08/28 12:06:26

ベストアンサー

匿名回答2号 No.1

匿名回答2号「匿名質問」を利用した質問に回答すると「匿名回答○号」と匿名で表示されます。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら
2013/08/21 18:52:38スマートフォンから投稿

http://ask.sqlservercentral.com/questions/41775/alternate-of-merge-command-in-sql-2000.html

そのやりたいことはUPSERTと呼ばれており、特に複数行の一括UPSERTをするのにはMERGEというコマンドが今は用意されています。

2000にはないコマンドなので、リンク先の通り、insertとupdateの二段階でやってください。

  • 匿名回答1号
    匿名回答1号 2013/08/21 17:03:53
    http://www.geocities.jp/oraclesqlpuzzle/sqlserver/sqlserver-3-2.html

    SQL Server2008以降なら MERGE文が使えます。
    ということは、それ以前は そのような構文はないということです。

    つまり 別々にやるしかないということですね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません