커서 없이 테이블 행에 대한 저장 프로시저 호출
커서를 사용하여 테이블의 각 행에 대해 저장 프로시저를 호출하는 것이 일반적인 접근 방식입니다. 그러나 성능 이점과 코드 명확성을 제공할 수 있는 대체 방법이 있습니다.
이러한 방법 중 하나는 커서가 전혀 필요하지 않은 집합 기반 접근 방식과 관련이 있습니다. 이 접근 방식은 행의 열을 저장 프로시저에 대한 입력 매개 변수로 직접 제공할 수 있는 시나리오에 적합합니다.
다음 코드 조각은 이를 달성하는 방법을 보여줍니다.
SQL
-- Declare & init (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
이 스니펫은 @CustomerID 변수를 0으로 초기화하는 것으로 시작합니다. 그런 다음 CustomerID의 오름차순으로 고객 행을 반복하는 WHILE 루프는 각 반복에서 다음 고객의 ID를 @CustomerID로 검색합니다.
고객 ID를 얻으면 해당 ID를 매개 변수로 사용하여 저장 프로시저 YOURSPROC가 호출됩니다. . 테이블에서 더 이상 고객을 찾을 수 없을 때까지 루프가 계속됩니다.
이 접근 방식을 사용하면 특정 시나리오에서 커서에 비해 향상된 성능을 제공할 수 있으며, 더욱 간결하고 읽기 쉬운 코드 구조도 제공됩니다.
위 내용은 커서를 사용하지 않고 각 테이블 행에 대해 저장 프로시저를 어떻게 호출할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!