• 締切済み

SQLServerでREPLACE/SELECTができるか?

My-SQLでは以下のSQLにより test01というDBからtest02というDBへ データをinsertすることができると思います。 また「insert」ではなく「replace」にすることで 同一キーの場合エラーにならず置き換えで データを登録してくれます。 ======================================= insert into [test01].dbo.test_table select * from [test02].dbo.test_table ======================================= そこで上記の「replace」を同じように SQLServerでできないか知っている方が おられたら是非ご教授いただきたく。 よろしくお願いいたします。

みんなの回答

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.1

REPLACE についてはわかりません。 質問のSQL ======================================= insert into [test01].dbo.test_table select * from [test02].dbo.test_table ======================================= は 当然、既存のtest01の主キーとtest02の値が重複すればエラーになります。 もし、重複を避けたいのであるなら 一旦、一時テーブルに重複しないデータを抽出しておき、その一時テーブルのデータを挿入するといった2ステップになります。 例、一時テーブルへ重複しないデータを出力 SEECT INTBL02.* into #TempTBL1 from [test01].dbo.test_table AS INTBL01 Left Join [test02].dbo.test_table AS INTBL02 ON INTBL01.Mkey1 = INTBL02.Mkey1 Where INTBL01.Mkey1 Is NULL Insert Into [test01].dbo.test_table SEECT * FROM #TempTBL1 ___________________________________________________________

waka0827
質問者

お礼

NOBNNN様 やはり一時テーブルなどの使用が必要ですか。 できれば1つのSQLで処理できればと思っていたのですが。 ご回答内容もひとつの案として考えて見ます。 回答ありがとうございました。

関連するQ&A