为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

九州编程 2019-11-06 11:05:41
我有以下两个表:Table1----------ID   Name1    A2    B3    CTable2----------ID   Name1    Z我需要从数据插入Table1到Table2。我可以使用以下语法:INSERT INTO Table2(Id, Name) SELECT Id, Name FROM Table1但是,在我的情况下,可能存在重复的ID Table2(在我的情况下,它只是“ 1”),我不想再次复制该ID ,因为这会引发错误。我可以这样写:IF NOT EXISTS(SELECT 1 FROM Table2 WHERE Id=1)INSERT INTO Table2 (Id, name) SELECT Id, name FROM Table1 ELSEINSERT INTO Table2 (Id, name) SELECT Id, name FROM Table1 WHERE Table1.Id<>1有没有一种更好的方法可以不使用IF - ELSE?我想避免INSERT INTO-SELECT基于某些条件的两个语句。
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

在MySQL中,您可以执行以下操作:


INSERT IGNORE INTO Table2(Id, Name) SELECT Id, Name FROM Table1

SQL Server是否有类似的东西?


查看完整回答
反对 回复 2019-11-06
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

我使用IanC建议ignore Duplicates的唯一索引来解决类似问题,使用Option创建索引WITH  IGNORE_DUP_KEY


In backward compatible syntax

, WITH IGNORE_DUP_KEY is equivalent to WITH IGNORE_DUP_KEY = ON.


查看完整回答
反对 回复 2019-11-06
  • 3 回答
  • 0 关注
  • 964 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信