値を持つテーブルユーザーを持っている:
FirstName LastName Age
A A 20
B B 21
C C 22
D D 21
E E 20
次に、プロシージャを作成し、 Ageをチェックしてから、if ステートメントで別のプロシージャを呼び出します
SELECT @firstName = FirstName ,lastName = LastName ,@age = Age FROM dbo.users
if @age = 20
exec myProc1 'firstName','LastName'
if @age = 21
exec myProc2 'firstName','LastName'
if @age = 22
exec myProc3 'firstName','LastName'
このプロシージャを呼び出すと、if ステートメントが 1 つの行のみを取り、次に IF ステートメントにある別のプロシージャを呼び出すと、たとえば、機能するのは
if @age = 20
exec myProc1 'firstName','LastName'
Age = 20がテーブルの最初の行であるためです。テーブル内のすべての行をチェックしたいのですが、どうすればよいですか? カーソルなしでそれを行うことは可能ですか?