• ベストアンサー

複数テーブルのUPDATE

タイトルの通り、複数テーブルのUPDATEを行いたいと思っています。 私なりには、以下のようなコードでテーブルを作成しようとしましたが、作成できませんでした。 エラー内容としては、 update table_1, table_2 SET のtable_1, が間違ってます的なエラーでした。 update table_1, table_2 SET table_1.updatetime=getdate(), WHERE table_1.SeqNo = table_2.SeqNo AND table_1.SeqNo = @SeqNo 以上、緊急の内容であったため、十分調べていない点があるかもしれませんが、何卒、ご存知の方ご教授お願い致します。

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

  • ベストアンサー
回答No.3

update1文で複数表の更新は、SQL Serverでは未サポートです。 MySQLでは、サポートしているようですけど。 質問にあるupdateは、table_1だけ更新するようになっているようですが、table_2の更新部分を省略して書いただけでしょうか? updateで他表とジョインした結果で1表を更新するといった書き方なら、「update ~ set ~ from ~ where ~」といった書き方はできます。

yamachan_tomo
質問者

お礼

joinでテーブル結合すれば、できそうですね。 試してみます。

その他の回答 (3)

  • wingtodo
  • ベストアンサー率56% (9/16)
回答No.4

的外れな回答だったらごめんなさい。 Table_1とTable_2の同じSeqNoのupdatetimeを一度に変更したいわけですよね? @SQLNo int AS BEGIN UPDATE Table_1 SET updatetime = GETDATE() WHERE (Table_1.SeqNo = @SQLNo) UPDATE Table_2 SET updatetime = GETDATE() WHERE (Table_2.SeqNo = @SQLNo) END こんな感じのストアドプロシージャを作成して実行してみてはどうでしょう。 また、トリガーの作成をしても良いのではないでしょうか。

yamachan_tomo
質問者

お礼

そうですね。2度SQLの発行を行えば、それでできそうです。 ただ、queryが長くなってしまうことを嫌っていました。 丁寧なご回答有難うございます。

  • castoff
  • ベストアンサー率15% (7/46)
回答No.2

No1回答者 出来ないはずです。

yamachan_tomo
質問者

お礼

そうですか、ありがとうございます。

  • castoff
  • ベストアンサー率15% (7/46)
回答No.1

複数テーブルのUPDATEって・・・ できるのでしたっけ?

yamachan_tomo
質問者

補足

いいえ、わかりません(汗) できるのかなって思ったのですが、できないのでしょうか?

関連するQ&A