相关疑难解决方法(0)

避免在SQL Server中的INSERT INTO SELECT查询中重复

我有以下两个表:

Table1
----------
ID   Name
1    A
2    B
3    C

Table2
----------
ID   Name
1    Z
Run Code Online (Sandbox Code Playgroud)

我需要从数据插入Table1Table2.我可以使用以下语法:

INSERT INTO Table2(Id, Name) SELECT Id, Name FROM Table1
Run Code Online (Sandbox Code Playgroud)

但是,在我的情况下,重复的ID可能存在Table2(在我的情况下,它只是" 1")并且我不想再次复制,因为这会引发错误.

我可以这样写:

IF NOT EXISTS(SELECT 1 FROM Table2 WHERE Id=1)
INSERT INTO Table2 (Id, name) SELECT Id, name FROM Table1 
ELSE
INSERT INTO Table2 (Id, name) SELECT Id, name FROM Table1 WHERE Table1.Id<>1
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法可以不使用IF - ELSE?我想避免INSERT INTO-SELECT基于某些条件的两个陈述.

sql t-sql sql-server sql-insert

97
推荐指数
5
解决办法
30万
查看次数

标签 统计

sql ×1

sql-insert ×1

sql-server ×1

t-sql ×1