집 >데이터 베이스 >MySQL 튜토리얼 >커서를 사용하여 SQL Server 레코드를 반복하는 방법은 무엇입니까?
SQL Server의 레코드 반복
루프 쿼리는 데이터베이스 테이블에서 데이터를 검색하고 처리하는 데 일반적입니다. 이 가이드에서는 SQL Server에서 T-SQL과 커서를 사용하여 레코드 집합을 반복하는 방법을 보여줍니다.
커서 만들기
집합을 반복하려면 레코드를 저장하려면 먼저 커서를 만들어야 합니다. 커서는 쿼리에서 반환된 행을 반복하는 데 사용할 수 있는 임시 포인터입니다. 다음 코드는 @MyCursor라는 커서를 정의합니다.
DECLARE @MyCursor CURSOR;
쿼리 설정
다음으로, 데이터를 검색할 쿼리를 설정해야 합니다. 반복하고 싶습니다. 귀하의 예에는 StatusID가 7인 테이블에서 상위 1000개의 레코드를 선택하는 쿼리가 있습니다. 이 쿼리를 사용하여 커서를 채울 수 있습니다:
SET @MyCursor = CURSOR FOR select top 1000 YourField from dbo.table where StatusID = 7
레코드 가져오기 및 처리
커서가 생성되고 채워지면 다음과 같은 지역 변수로 레코드를 행 단위로 가져올 수 있습니다. @MyField:
OPEN @MyCursor FETCH NEXT FROM @MyCursor INTO @MyField
FETCH NEXT 문은 커서에서 다음 행을 검색하고 해당 값을 지정된 변수에 할당합니다.
루핑 조건
루프를 생성하려면 레코드 가져오기를 중지할 시점을 결정하는 조건이 필요합니다. 이 경우 커서 상태를 반환하는 @@FETCH_STATUS 시스템 변수를 사용할 수 있습니다.
WHILE @@FETCH_STATUS = 0 BEGIN
@@FETCH_STATUS 값이 0인 한 루프는 계속 실행됩니다. 모든 레코드를 가져오면 @@FETCH_STATUS가 -1로 설정되고 루프가 종료됩니다.
처리 논리
루프 내에서 다음을 실행할 수 있습니다. 가져온 데이터에 대해 원하는 논리. 예를 들어 YourField 값을 콘솔에 인쇄하거나 다른 테이블의 관련 레코드를 업데이트할 수 있습니다.
/* YOUR ALGORITHM GOES HERE */
커서 닫기
모든 레코드가 처리된 경우 커서를 닫고 할당을 취소하여 시스템 리소스를 확보해야 합니다.
CLOSE @MyCursor; DEALLOCATE @MyCursor;
다음을 수행하세요. 이러한 단계를 통해 SQL Server의 레코드 집합을 쉽게 반복하고 필요한 작업을 수행할 수 있습니다.
위 내용은 커서를 사용하여 SQL Server 레코드를 반복하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!