SQL Server CURSOR (한국어)

요약 :이 자습서에서는 SQL Server 커서를 사용하여 한 번에 한 행씩 결과 집합을 처리하는 방법을 배웁니다.

SQL은 집합을 기반으로 작동합니다. 예를 들어 SELECT 문은 결과 집합이라고하는 행 집합을 반환합니다. 그러나 경우에 따라 행 단위로 데이터 세트를 처리 할 수 있습니다. 여기에서 커서가 작동합니다.

데이터베이스 커서 란?

데이터베이스 커서는 결과 집합의 행을 순회 할 수있는 객체입니다. 쿼리에서 반환 된 개별 행을 처리 할 수 있습니다.

SQL Server 커서 수명주기

다음은 커서 사용 단계입니다.

먼저 커서를 선언합니다.

Code language: SQL (Structured Query Language) (sql)

커서를 선언하려면 CURSOR 데이터 유형과 함께 DECLARE 키워드 뒤에 커서 이름을 지정하고 SELECT 문은 커서의 결과 집합을 정의합니다.

다음으로 SELECT 문 :

Code language: SQL (Structured Query Language) (sql)

그런 다음 커서에서 하나 이상의 변수로 행을 가져옵니다.

Code language: SQL (Structured Query Language) (sql)

SQL Server는 커서에 대해 실행 된 마지막 커서 FETCH 문의 상태를 반환하는 @@FETCHSTATUS 함수를 제공합니다. @@FETCHSTATUS가 0을 반환하면 FETCH 문이 성공했음을 의미합니다. 다음 코드와 같이 WHILE 문을 사용하여 커서에서 모든 행을 가져올 수 있습니다.

Code language: SQL (Structured Query Language) (sql)

그런 다음 커서를 닫습니다.

Code language: SQL (Structured Query Language) (sql)

마지막으로 커서 할당을 취소합니다.

Code language: SQL (Structured Query Language) (sql)

SQL Server 커서 예

샘플 데이터베이스의 prodution.products 테이블을 사용하여 커서 사용 방법을 보여 드리겠습니다.

먼저, 제품 이름과 정가를 보유 할 두 개의 변수를 선언하고 production.products 테이블에서 제품 이름과 정가를 검색하는 쿼리 결과를 저장할 커서 :

다음으로 커서를 엽니 다.

Code language: SQL (Structured Query Language) (sql)

그런 다음 커서에서 각 행을 가져 와서 제품 이름과 정가를 인쇄합니다.

그런 다음 커서를 닫습니다.

Code language: SQL (Structured Query Language) (sql)

마지막으로 커서를 할당 해제하여 해제합니다.

다음 코드 스 니펫은 모든 것을 통합합니다.

다음은 부분 출력입니다.

실제로 커서를 사용하여 행 단위로 결과 집합을 처리하는 경우는 거의 없습니다.

이 자습서에서는 SQL Server 커서를 사용하여 한 번에 각 행의 결과 집합을 처리하는 방법을 배웠습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다