emp
テーブルにプライマリキーを持つ一意の行があります。SQL Serverで問題を更新または挿入しますか?
select * from EMP E;
は今、私は次のようにemp
テーブルのバックアップを取るemp_backup
テーブルを作成しました。
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;
私はテーブルをemp_backupするempno
14でレコードをコピーした後emp
テーブルを更新します。
私が実行したときinsert into emp_backup....
クエリこの更新プログラムの変更を希望する場合は、emp_backup
テーブルに再選択する必要があります。
上記のクエリを変更して、既存の主キーを持つ更新された行をemp
からemp_backup
にコピーするにはどうすればよいですか。
私の質問がはっきりしていることを願って、私がそれを改善する方法を教えてください。
あなたはemp_backup –
で一意キーまたは主キーとして、他の列を定義している@SathyaNarayanan Iまし両方 'emp'と' emp_backup'テーブルの主キーとしてのみ 'empno' 。 –
なぜバックアップを使用しないのですか?あなたはオプションのための完全なだけでなく差分を使用することができます... –