UPDATE()(Transact-SQL)

테이블 또는 뷰의 지정된 열에서 INSERT 또는 UPDATE를 시도했는지 여부를 나타내는 부울 값을 반환합니다. UPDATE()는 트리거가 특정 동작을 실행해야 하는지 여부를 테스트하기 위해 Transact-SQL INSERT 또는 UPDATE 트리거 내의 어디서나 사용할 수 있습니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

UPDATE ( column ) 

인수

  • column
    INSERT 또는 UPDATE 동작 중 하나에 관해 테스트할 열의 이름입니다. 테이블 이름은 트리거의 ON 절에 지정되므로 열 이름 앞에 테이블 이름을 사용하지 마십시오. 열에는 SQL Server에서 지원되는 모든 데이터 형식을 지정할 수 있습니다. 단, 계산 열은 이 컨텍스트에서 사용할 수 없습니다.

반환 형식

부울

주의

UPDATE()는 INSERT 또는 UPDATE의 성공 여부와 관계없이 TRUE를 반환합니다.

둘 이상의 열에 대해 INSERT 또는 UPDATE 동작을 테스트하려면 첫 번째 절 다음에 별도로 UPDATE(column) 절을 지정하십시오. COLUMNS_UPDATED를 사용하여 여러 열에 대한 INSERT 또는 UPDATE 동작을 테스트할 수도 있습니다. 이 경우 삽입 또는 업데이트된 열을 나타내는 비트 패턴이 반환됩니다.

열에 명시적인 값 또는 암시적인(NULL) 값이 삽입되었으므로 IF UPDATE는 INSERT 동작에 대해 TRUE 값을 반환합니다.

[!참고]

IF UPDATE(column) 절은 IF, IF...ELSE 또는 WHILE 절과 같은 기능을 수행하며 BEGIN...END 블록을 사용할 수 있습니다. 자세한 내용은 흐름 제어 언어(Transact-SQL)를 참조하십시오.

UPDATE(column)는 Transact-SQL 트리거 본문 내의 어디서나 사용할 수 있습니다.

다음 예에서는 사용자가 Address 테이블의 StateProvinceID 또는 PostalCode 열을 업데이트하려고 하면 클라이언트에게 메시지를 출력하는 트리거를 만듭니다.

USE AdventureWorks2012;
GO
IF EXISTS (SELECT name FROM sys.objects
      WHERE name = 'reminder' AND type = 'TR')
   DROP TRIGGER Person.reminder;
GO
CREATE TRIGGER reminder
ON Person.Address
AFTER UPDATE 
AS 
IF ( UPDATE (StateProvinceID) OR UPDATE (PostalCode) )
BEGIN
RAISERROR (50009, 16, 10)
END;
GO
-- Test the trigger.
UPDATE Person.Address
SET PostalCode = 99999
WHERE PostalCode = '12345';
GO

참고 항목

참조

COLUMNS_UPDATED(Transact-SQL)

CREATE TRIGGER(Transact-SQL)