'Update'에 해당되는 글 1건
- 2010.09.06 순번 구하기
TB_DATA에 pk1, pk2, pk_old 가 기본키로 존재했음.
pk_old는 중복된 값이 들어올 수 있어서 pk_new 가 새로운 키로 들어와서 pk_old와 교체해야 하는 상황이 생겼음.
pk_new는 순번이다.
pk_new를 추가하고 기존 기본키를 삭제.
pk_new는 데이터가 들어가 있지 않으므로 순번을 넣어야 함.
- 순번을 rank()를 사용하지 않고 구하는 방법도 있음.
- 위 구문에서 SET 절의 pk_new를 a.pk_new로 하면 다음과 같은 에러가 발생한다.
pk_old는 중복된 값이 들어올 수 있어서 pk_new 가 새로운 키로 들어와서 pk_old와 교체해야 하는 상황이 생겼음.
pk_new는 순번이다.
pk_new를 추가하고 기존 기본키를 삭제.
pk_new는 데이터가 들어가 있지 않으므로 순번을 넣어야 함.
UPDATE TB_DATA --SQL Server 2005 SET pk_new = b.ser FROM TB_DATA a, ( SELECT rank() OVER (PARTITION BY pk1, pk2 ORDER BY pk_old) as ser , pk1, pk2, pk_old FROM TB_DATA ) b WHERE a.pk1 = b.pk1 and a.pk2 = b.pk2 and a.pk_old = b.pk_old
- 순번을 rank()를 사용하지 않고 구하는 방법도 있음.
- 위 구문에서 SET 절의 pk_new를 a.pk_new로 하면 다음과 같은 에러가 발생한다.
메시지 4104, 수준 16, 상태 1, 줄 2
여러 부분으로 구성된 식별자 "a.pk_new"은(는) 바인딩할 수 없습니다.
여러 부분으로 구성된 식별자 "a.pk_new"은(는) 바인딩할 수 없습니다.
Recent comment