수색…
통사론
- UPDATE 테이블
SET column_name = value , column_name2 = value_2 , ..., column_name_n = value_n
WHERE 조건 ( 논리 연산자 condition_n)
모든 행 업데이트
이 예제는 예제 데이터베이스의 Cars Table 을 사용합니다.
UPDATE Cars
SET Status = 'READY'
이 문은 행 세트를 필터링하기 위해 WHERE
절이 없기 때문에 'Cars'테이블의 모든 행의 'status'열을 'READY'로 설정합니다.
지정된 행 업데이트
이 예제는 예제 데이터베이스의 Cars Table 을 사용합니다.
UPDATE
Cars
SET
Status = 'READY'
WHERE
Id = 4
이 문은 ID가 4 인 'Cars'행의 상태를 'READY'로 설정합니다.
WHERE
절은 각 행에 대해 평가되는 논리 표현식을 포함합니다. 행이 기준을 충족하면 값이 업데이트됩니다. 그렇지 않으면 행이 변경되지 않습니다.
기존 값 수정하기
이 예제는 예제 데이터베이스의 Cars Table 을 사용합니다.
UPDATE Cars
SET TotalCost = TotalCost + 100
WHERE Id = 3 or Id = 4
업데이트 작업에는 업데이트 된 행의 현재 값이 포함될 수 있습니다. 이 간단한 예제에서 TotalCost
는 두 행에 대해 100 씩 증가합니다.
- 자동차 3 호의 총 비용이 100에서 200으로 증가했습니다.
- 자동차 # 4의 총 비용이 1254에서 1354로 증가했습니다.
열의 새 값은 이전 값 또는 동일한 테이블이나 조인 된 테이블의 다른 열의 값에서 파생 될 수 있습니다.
다른 테이블의 데이터로 업데이트
아래 예제는 또한 Customer
이기도하고 현재 Employees
테이블에 설정된 전화 번호가없는 직원의 PhoneNumber
를 기입합니다.
(이 예제에서는 예제 데이터베이스의 Employees 및 Customers 테이블을 사용합니다.)
표준 SQL
상관 하위 쿼리를 사용하여 업데이트 :
UPDATE
Employees
SET PhoneNumber =
(SELECT
c.PhoneNumber
FROM
Customers c
WHERE
c.FName = Employees.FName
AND c.LName = Employees.LName)
WHERE Employees.PhoneNumber IS NULL
SQL : 2003
MERGE
사용하여 업데이트 :
MERGE INTO
Employees e
USING
Customers c
ON
e.FName = c.Fname
AND e.LName = c.LName
AND e.PhoneNumber IS NULL
WHEN MATCHED THEN
UPDATE
SET PhoneNumber = c.PhoneNumber
SQL 서버
INNER JOIN
사용하여 업데이트 :
UPDATE
Employees
SET
PhoneNumber = c.PhoneNumber
FROM
Employees e
INNER JOIN Customers c
ON e.FName = c.FName
AND e.LName = c.LName
WHERE
PhoneNumber IS NULL
업데이트 된 레코드 캡처
때로는 방금 업데이트 된 레코드를 캡처하려고합니다.
CREATE TABLE #TempUpdated(ID INT)
Update TableName SET Col1 = 42
OUTPUT inserted.ID INTO #TempUpdated
WHERE Id > 50
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow