집 >데이터 베이스 >MySQL 튜토리얼 >커서 없이 각 테이블 행에 대해 저장 프로시저를 실행할 수 있습니까?
커서 없이 각 테이블 행에 대해 저장 프로시저 실행
모든 행에 대해 저장 프로시저를 호출하는 작업에 직면했을 때 테이블에서는 커서를 사용하여 행을 반복하는 접근 방식을 고려하는 것이 당연합니다. 하지만 이 작업은 커서에 의존하지 않고도 달성할 수 있습니다.
집합 기반 접근 방식 활용
집합 기반 접근 방식에서 우리는 모든 행에 대해 동시에 작업을 수행하는 방법입니다. 예를 들어, 테이블의 모든 행에 대한 열을 업데이트하는 것이 목표라면 적절한 WHERE 절이 포함된 UPDATE 문을 활용하여 관련 레코드를 한 번에 수정할 수 있습니다.
특정 사례: 행 열 반복
그러나 행의 열을 저장 프로시저의 입력 매개 변수로 사용해야 하는 시나리오를 처리할 때는 약간 다릅니다. 접근이 필요합니다. 제공된 답변에 설명된 대로:
코드 샘플
제공된 코드 조각은 이 접근 방식을 구현하는 방법을 보여줍니다.
-- Declare & initialize (2008 syntax) DECLARE @CustomerID INT = 0 -- Iterate over all customers WHILE (1 = 1) BEGIN -- Get next customerId SELECT TOP 1 @CustomerID = CustomerID FROM Sales.Customer WHERE CustomerID > @CustomerId ORDER BY CustomerID -- Exit loop if no more customers IF @@ROWCOUNT = 0 BREAK; -- call your sproc EXEC dbo.YOURSPROC @CustomerId END
위 내용은 커서 없이 각 테이블 행에 대해 저장 프로시저를 실행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!