Sql server如果存在就更新,不存在就插入

2021-10-04 23:20:45 字數 628 閱讀 4049

sql不同於mysql那樣,有單獨的乙個命令來執行上述操作,比如在mysql中就可以這樣寫

replace into demo_in(a,b,c) values(123, 2, 4);

在mysql中這是乙個原子操作,如果這條資料存在,就先刪除在插入,不存在就直接插入.要注意的是需要有乙個唯一的主鍵支援,如果沒有主鍵,這條語句和 intert into 沒有區別,會一直插入資料.

那麼在sqlserver 中該如何實現呢,可以通過if語句來實現

if not exists (select 1 from '表' where id = 'id')

insert into '表' ( id,欄位1,欄位2,欄位3) values ('1','2','3','4')

else

update '表' set 欄位1='1',欄位2='2',欄位3='3'

where id = 'id'

這樣就能實現sql server 的存在修改不存在插入的功能

ORACLE如果存在表就刪除不存在就建立

最近做資訊採集,總是需要建立臨時表,一同連線8個庫同時開展。但是oracle裡面沒有像sqlserver那樣的 if exists select from dbo.sysobjects where id object id n dbo hy bscdnm j and objectproperty i...

MySQL實現如果存在就更新,不存在就寫入

最近的業務中,有這樣乙個需求 如果資料存在就更新,不存在就寫入,一般情況下是需要先查詢,後判斷是更新還是寫入的,需要進行兩次io操作。所以為了減少同步時間,第乙個思路是使用併發,第二種思路就是應該儘量減少請求mysql的次數,這裡將講講第二種思路。正常情況下實現 如果存在就更新,不存在就寫入的偽 偽...

MySQL中怎麼實現如果存在就修改不存在就新增

on duplicate key update的作用是先看insert中的內容是否存在,如果存在就執行後邊update中的語句.注意 前提是該錶要有主鍵索引.表結構 新增不存在的資料 源表資料 新增一條不存在的資料 insert into students values 3,源資料 18 on du...