2016-08-04 66 views
0

我有一个表格,下面的约束定义。我试图用值(大约9000加上行)更新列D;我试图更新D列值(约9000加上行)。由于更新值,约束错误到达,因为某些值我想更新到D.更新行并忽略导致主键约束的行?

违反PRIMARY KEY约束'PK_TempItemTable_1'。无法在对象'dbo.TempItemTable'中插入重复键。

有没有办法让我编写MS SQL语句,让我更新所有其他行并忽略导致此主键约束的行?

感谢

+1

你可以发布你试过的代码不起作用吗?基本上,你需要排除你的更新语句中PK值已经存在的行 – Beth

回答

0

两个选项..

IGNORE_DUP_KEY = ON 1,创建约束,之后再删除重复项,并设置约束回来。

2.主键是从A到E的列的组合,检查,所以不知道如何检查只有d会有所帮助,但无法知道样本模式,我可以说,这将排除所有存在于表你要更新

update mt 
set d=dup.d 
from 
maintable t 
join 
ninetythousandtable dup 
on dup.d<>t.d