다음을 통해 공유


SET 절을 사용하여 데이터 변경

SET 절은 변경할 열과 해당 열에 대한 새 값을 지정합니다. WHERE 절의 검색 조건과 일치하는 모든 행에서 지정한 열의 값은 SET 절에 지정된 값으로 업데이트됩니다.

다음 예에서는 지정된 도시와 일치하는 행에 대해 우편 번호 값을 변경합니다.

USE AdventureWorks;
GO
UPDATE Person.Address
SET PostalCode = '98000'
WHERE City = 'Bothell';
GO

WHERE 절을 지정하지 않으면 모든 행이 업데이트됩니다. 예를 들어 이 문은 SalesPerson 테이블에 있는 모든 행에 대해 Bonus, CommissionPctSalesQuota 열의 값을 업데이트합니다.

USE AdventureWorks;
GO
UPDATE Sales.SalesPerson
SET Bonus = 6000, CommissionPct = .10, SalesQuota = NULL;
GO

업데이트 작업에서 계산 열의 값을 계산하고 사용할 수 있습니다. 다음 예에서는 Product 테이블의 모든 행에 대해 ListPrice 열의 값을 두 배로 만듭니다.

USE AdventureWorks ;
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 2;
GO

SET 절에 사용되는 식은 한 개의 값만 반환하는 하위 쿼리가 될 수도 있습니다. 다음 예에서는 SalesPerson 테이블의 SalesYTD 열을 수정하여 SalesOrderHeader 테이블에서 가장 최근에 기록된 판매 정보를 반영합니다. 하위 쿼리는 UPDATE 문 내에서 각 영업 사원의 판매를 집계합니다.

USE AdventureWorks;
GO
UPDATE Sales.SalesPerson
SET SalesYTD = SalesYTD + 
    (SELECT SUM(so.SubTotal) 
     FROM Sales.SalesOrderHeader AS so
     WHERE so.OrderDate = (SELECT MAX(OrderDate)
                           FROM Sales.SalesOrderHeader AS so2
                           WHERE so2.SalesPersonID = 
                                 so.SalesPersonID)
     AND Sales.SalesPerson.SalesPersonID = so.SalesPersonID
     GROUP BY so.SalesPersonID);
GO

참고 항목

개념

WHERE 절을 사용하여 데이터 변경
FROM 절을 사용하여 데이터 변경
TOP를 사용하여 업데이트되는 데이터 제한
UPDATE를 사용하여 데이터 변경

도움말 및 정보

SQL Server 2005 지원 받기