![How Can I Execute a Stored Procedure for Each Row Returned by a T-SQL Query?](https://img.php.cn/upload/article/000/000/000/173520601617180.jpg)
T-SQL에서 쿼리 결과의 각 행에 대해 저장 프로시저 실행
쿼리 결과를 반복하고 저장 프로시저를 실행하려면 각 행에 대해 T-SQL에서 CURSOR를 활용할 수 있습니다. CURSOR를 사용하면 결과 집합에서 한 번에 하나의 행을 검색할 수 있으므로 이 시나리오에 매우 적합합니다.
이 루프 기능을 구현하기 위해 다음 단계에서는 T-SQL의 솔루션을 개략적으로 설명합니다.
-
필요한 변수 선언:
a. 각 행의 ID 값을 저장하기 위해 정수 변수 @id를 선언합니다.
b. 예를 들어 테이블의 추가 열 값을 저장하려면 두 번째 변수 @name을 선언하세요.
c. CURSOR 변수 @getid를 선언하여 행을 단계별로 실행하는 커서를 보관합니다.
-
CURSOR 만들기:
SET 문을 사용하여 @getid에 값을 할당합니다. value는 테이블에서 원하는 열을 선택하는 SQL 문입니다. 이 예에서는 ID와 이름을 모두 선택합니다.
-
CURSOR 열기:
OPEN 문을 사용하여 CURSOR를 열어 검색 작업에 사용할 수 있도록 합니다.
-
첫 번째 행 가져오기:
검색하려면 FETCH NEXT 문을 사용하세요. 결과 세트의 첫 번째 행을 선언된 변수(@id 및 @name)로 설정합니다.
-
행을 반복합니다.
WHILE 루프를 사용하여 다음과 같이 나머지 행을 반복합니다. @@FETCH_STATUS가 0인 경우 처리할 행이 더 있음을 나타냅니다.
-
저장된 행을 실행합니다. 절차:
루프 내에서 EXEC 문을 사용하여 저장 프로시저를 실행하고 현재 행의 적절한 매개 변수를 전달합니다. 이 예에서는 @id, @otherVarName 및 @varForName을 전달합니다.
-
다음 행을 가져옵니다.
저장 프로시저를 실행한 후 FETCH NEXT를 다시 사용하여 다음 행을 검색합니다. 행을 선언된 변수에 추가합니다.
-
닫고 할당을 취소합니다. CURSOR:
모든 행을 처리한 후 CLOSE 및 DEALLOCATE 문을 사용하여 CURSOR 리소스를 해제합니다.
이 단계를 수행하면 쿼리 결과를 효과적으로 반복할 수 있습니다. T-SQL을 실행하고 각 행에 대해 저장 프로시저를 실행하여 검색된 데이터를 기반으로 사용자 지정 작업을 수행할 수 있습니다.
위 내용은 T-SQL 쿼리에서 반환된 각 행에 대해 저장 프로시저를 어떻게 실행할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!