SQL 存在则更新,不存在则插入

我们在开发数据库相关的逻辑过程中, 经常检查表中是否已经存在这样的一条记录, 如果存在则更新或者不做操作, 如果没有存在记录,则需要插入一条新的记录。

一个简单的解决方法.

1.建立两张临时表

CREATE TABLE #1( id VARCHAR(50),NAME VARCHAR(50))
CREATE TABLE #2( id VARCHAR(50),NAME VARCHAR(50))

2.将#2中存在#1中不存在的数据插入#1

INSERT INTO #1 
SELECT * FROM #2 WHERE NOT EXISTS (SELECT * FROM #1 WHERE #1.id=#2.id)

3.将#2的数据update到#1

UPDATE #1 SET NAME=b.NAME FROM #1 a,#2 b WHERE a.id=b.id

首先,这个方法不是好方法,应该不是.受限本人水平. 其次,这个方法可行,能实现存在则更新,反之则插入.