我在我的emp
表中拥有唯一的主键。在SQL Server中更新或插入问题?
select * from EMP E;
现在我已经创建emp_backup
表这需要emp
表一样的备份。
insert into emp_backup
select * from emp e
where not exists (select EMPNO from emp_backup E1 where E1.EMPNO=e.EMPNO);
上面的查询成功地将所有的行从emp
到emp_backup
并确保当你再次上面的查询它不会对现有行复制从emp
在下次运行emp_backup
表上运行。
现在我的问题是,当我更新emp
表中的任何记录,并尝试运行上面的查询时,它给我错误primary key violation
这是例外。例如
。
update EMP
set JOB='worker'
where EMPNO=14;
我复制纪录empno
14 emp_backup表后更新emp
表。
当我运行insert into emp_backup....
查询我希望此更新应该改为emp_backup
表。
我如何修改上述查询,以便它将使用现有主键从emp
到emp_backup
复制更新的行。
我希望我的问题很明确,告诉我如何改善它。
你有没有定义的任何其他列作为emp_backup – 2012-03-30 04:33:20
唯一键或主键@SathyaNarayanan我只有'empno'作为主键在这两个'emp'和'emp_backup'表。 – 2012-03-30 04:34:03
为什么你不使用备份?你可以使用全选以及差分选项... – 2012-03-30 04:34:53