【工作筆記0028】SqlServer INSERT 插入數據前去重(判斷是否存在 IF NOT EXISTS / WHERE NOT EXISTS )

假設已經存在以下數據表 Person 和 Person2

CREATE TABLE Person
(
    Name varchar(255),
    Sex varchar(255),
    Address varchar(255)
);




CREATE TABLE Person2
(
    Name varchar(255),
    Sex varchar(255),
    Address varchar(255)
)

1. IF NOT EXISTS 判斷是否已經存在

IF NOT EXISTS (SELECT TOP 1 Name FROM Person WHERE Name = '馬雲爸爸')
INSERT INTO Person(Name, Sex, Address)
VALUES('馬雲爸爸', '男', '阿里巴巴西溪園區')

解析:如果 Person 表中不存在 Name 爲 '馬雲爸爸' 的數據,則添加一條數據

2. WHERE NOT EXISTS 判斷是否已經存在

INSERT INTO Person(Name, Sex, Address)
SELECT Name, Sex, Address FROM Person2
WHERE Person2.Name = '馬雲爸爸'
AND NOT EXISTS (
    SELECT Name FROM Person WHERE Name = '馬雲爸爸'
)

解析:讀取 Person2 中 Name 爲 '馬雲爸爸' 的數據,並判斷 Person 中是否已經存在了,若不存在則插入 Person 表中,存在則不插入

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章