我在我的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