다음을 통해 공유


커서를 사용하여 데이터 변경

ADO, OLE DB, ODBC API는 결과 집합에서 응용 프로그램이 위치한 현재 행의 업데이트를 지원합니다. 다음 단계는 기본적인 프로세스를 설명합니다.

  1. 결과 집합 열을 프로그램 변수에 바인딩합니다.
  2. 쿼리를 실행합니다.
  3. API 함수나 메서드를 호출하여 결과 집합 내의 행에 응용 프로그램을 배치합니다.
  4. 바인딩된 프로그램 변수를 업데이트될 열의 새 데이터 값으로 채웁니다.
  5. 다음 함수나 메서드 중 하나를 호출하여 행을 삽입합니다.
    • ADO에서 Recordset 개체의 Update 메서드를 호출합니다.
    • OLE DB에서 IRowsetChange 인터페이스의 SetData 메서드를 호출합니다.
    • ODBC에서 SQL_UPDATE 옵션이 있는 SQLSetPos 함수를 호출합니다.

Transact-SQL 서버 커서를 사용할 경우 WHERE CURRENT OF 절이 포함된 UPDATE 문을 사용하여 현재 행을 업데이트할 수 있습니다. 이 절은 커서가 위치한 행에만 변경 사항이 반영되도록 합니다. 커서가 조인을 기반으로 할 경우 UPDATE 문에 지정된 table_name만 수정되고 커서에 사용한 다른 테이블은 영향을 받지 않습니다.

USE AdventureWorks;
GO
DECLARE complex_cursor CURSOR FOR
    SELECT a.EmployeeID
    FROM HumanResources.EmployeePayHistory AS a
    WHERE RateChangeDate <> 
         (SELECT MAX(RateChangeDate)
          FROM HumanResources.EmployeePayHistory AS b
          WHERE a.EmployeeID = b.EmployeeID) ;
OPEN complex_cursor;
FETCH FROM complex_cursor;
UPDATE HumanResources.EmployeePayHistory
SET PayFrequency = 2 
WHERE CURRENT OF complex_cursor;
CLOSE complex_cursor;
DEALLOCATE complex_cursor;
GO

조인에 대한 자세한 내용은 조인 기본 사항을 참조하십시오.

참고 항목

개념

UPDATE를 사용하여 데이터 변경
ntext, text 또는 image 데이터 변경

관련 자료

UPDATE(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기