커서를 사용하여 데이터 변경
ADO, OLE DB, ODBC API는 결과 집합에서 응용 프로그램이 위치한 현재 행의 업데이트를 지원합니다. 다음 단계는 기본적인 프로세스를 설명합니다.
- 결과 집합 열을 프로그램 변수에 바인딩합니다.
- 쿼리를 실행합니다.
- API 함수나 메서드를 호출하여 결과 집합 내의 행에 응용 프로그램을 배치합니다.
- 바인딩된 프로그램 변수를 업데이트될 열의 새 데이터 값으로 채웁니다.
- 다음 함수나 메서드 중 하나를 호출하여 행을 삽입합니다.
- 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 데이터 변경