【发布时间】:2021-03-02 16:52:17
【问题描述】:
我正在为一个程序开发一个查询,其中用户必须在数据库表中输入一个或多个值。
查询的问题是,当您尝试插入多个值时,可能是其中一些值在表中重复,并且警告一次只会显示一个重复值,这可能是您遇到的问题使用 1000 多个值。
错误信息:
无法在具有唯一索引“IX_StyleID_WebCategoryID”的对象“ItemWebCategory”中插入重复的键行。重复键值为 (1109068, 99999)。
查询
insert into ItemWebCategory (Style_id,WebCategoryID)
select distinct Style_id,WebCategoryID = '99999'
from ItemCategory
where style_id in ('1109068','168175', '68435', '545457', '69189')
问题
如何修改查询,使其可以跳过/排除所有重复值并仅插入表中不存在的值?
【问题讨论】:
-
使用
WHERE检查值不存在还是使用MERGE? -
WebCategoryID = '99999'这是一个布尔字段吗?
标签: sql sql-server sql-insert