- 締切済み
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でできないか知っている方が おられたら是非ご教授いただきたく。 よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- NOBNNN
- ベストアンサー率50% (93/186)
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 ___________________________________________________________
お礼
NOBNNN様 やはり一時テーブルなどの使用が必要ですか。 できれば1つのSQLで処理できればと思っていたのですが。 ご回答内容もひとつの案として考えて見ます。 回答ありがとうございました。