- ベストアンサー
複数テーブルの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 以上、緊急の内容であったため、十分調べていない点があるかもしれませんが、何卒、ご存知の方ご教授お願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
update1文で複数表の更新は、SQL Serverでは未サポートです。 MySQLでは、サポートしているようですけど。 質問にあるupdateは、table_1だけ更新するようになっているようですが、table_2の更新部分を省略して書いただけでしょうか? updateで他表とジョインした結果で1表を更新するといった書き方なら、「update ~ set ~ from ~ where ~」といった書き方はできます。
その他の回答 (3)
- wingtodo
- ベストアンサー率56% (9/16)
的外れな回答だったらごめんなさい。 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 こんな感じのストアドプロシージャを作成して実行してみてはどうでしょう。 また、トリガーの作成をしても良いのではないでしょうか。
お礼
そうですね。2度SQLの発行を行えば、それでできそうです。 ただ、queryが長くなってしまうことを嫌っていました。 丁寧なご回答有難うございます。
- castoff
- ベストアンサー率15% (7/46)
No1回答者 出来ないはずです。
お礼
そうですか、ありがとうございます。
- castoff
- ベストアンサー率15% (7/46)
複数テーブルのUPDATEって・・・ できるのでしたっけ?
補足
いいえ、わかりません(汗) できるのかなって思ったのですが、できないのでしょうか?
お礼
joinでテーブル結合すれば、できそうですね。 試してみます。