ホームページ >データベース >mysql チュートリアル >カーソルのないテーブルの各行に対してストアド プロシージャを呼び出すにはどうすればよいですか?
カーソルを使用しない各行のストアド プロシージャの呼び出し
テーブル内のすべての行に対してストアド プロシージャを呼び出す必要がある場合、カーソルの使用を避けたい場合は、セットベースのアプローチを利用できます。ガイドとなるコード スニペットは次のとおりです。
-- 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
このコードはテーブルを反復処理し、次の顧客の ID を取得し、その ID をパラメータとしてストアド プロシージャ YOURSPROC を呼び出します。処理する顧客がなくなるまでこのループが続きます。
以上がカーソルのないテーブルの各行に対してストアド プロシージャを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。