UPDATE¶
대상 테이블에서 지정된 행을 새 값으로 업데이트합니다.
구문¶
필수 매개 변수¶
target_table업데이트할 테이블을 지정합니다.
col_nametarget_table에서 열 이름을 지정합니다. 테이블 이름을 포함하지 마십시오. 예를 들어,UPDATE t1 SET t1.col = 1은 유효하지 않습니다.valuecol_name에 설정할 새 값을 지정합니다.
선택적 매개 변수¶
FROM additional_tables업데이트할 행을 선택하거나 새 값을 설정하는 데 사용할 하나 이상의 테이블을 지정합니다. 대상 테이블을 반복하면 자체 조인이 발생합니다.
WHERE condition업데이트할 대상 테이블의 행을 지정하는 식입니다.
기본값: 값 없음(대상 테이블의 모든 행이 업데이트됨)
사용법 노트¶
FROM 절에서 테이블(예:
t1및t2) 사이에 JOIN 이 있을 때,t1의 대상 행이 테이블t2에 있는 둘 이상의 행에 대해 조인(즉, 일치)할 수 있습니다. 이런 상황이 발생할 때 대상 행을 다중 조인 행 이라고 합니다. 다중 조인 행을 업데이트할 때 ERROR_ON_NONDETERMINISTIC_UPDATE 세션 매개 변수는 업데이트 결과를 제어합니다.FALSE(기본값)인 경우 아무런 오류도 반환되지 않으며 조인된 행 중 하나가 대상 행을 업데이트하는 데 사용되지만, 선택한 조인 행은 비결정적입니다.IF
TRUE인 경우 여러 행을 조인하는 대상 행 값의 예를 포함하여 오류가 반환됩니다.
매개 변수를 설정하는 방법은 다음과 같습니다.
예¶
다음과 같이 두 개의 테이블을 사용해 표준 업데이트를 수행합니다.
비결정적 결과를 생성하는 조인으로 업데이트합니다.
ERROR_ON_NONDETERMINISTIC_UPDATE = FALSE인 상태에서 이 문은
src에 있는 다음 행 중 하나의 값을 사용해target에서 단일 행을 무작위로 업데이트합니다.
(0, 11),(0, 12),(0,13)ERROR_ON_NONDETERMINISTIC_UPDATE = TRUE인 상태에서 중복 DML 행
[0, 10]을 보고하는 오류가 반환됩니다.
이 비결정적 동작과 오류를 방지하려면 1:1 조인을 사용하십시오.
이 문을 실행하면
target의 단일 행이(0, 11)(src에서v의 최소값이 있는 행의 값)로 업데이트되고 오류를 발생시키지 않습니다.