요약 :이 자습서에서는 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 커서를 사용하여 한 번에 각 행의 결과 집합을 처리하는 방법을 배웠습니다.