SQLUSA

Microsoft SQL Server 2005 Best Practices

How to architect math drill sproc for addition?

Execute the following T-SQL script in Query Editor to create and apply an addition drills stored procedure:

USE AdventureWorks

GO

 

-- SQL Server stored procedure

-- T-SQL while

-- SQL random function

CREATE PROC sprocMathTrainerAddition(

           @DrillNumber INT,

           @Level       INT,

           @Result      BIT)

AS

  BEGIN

    DECLARE  @Counter SMALLINT

    

    DECLARE  @Drill  TABLE(

                           SEQUENCE INT,

                           [Left]   INT,

                           [Right]  INT,

                           Result   VARCHAR(15)

                           )

    

    SET @Counter = 1

    

    WHILE @Counter <= @DrillNumber

      BEGIN

        INSERT @Drill

        SELECT @Counter,

               @Level * RAND(),

               @Level * RAND(),

               ''

        

        SET @Counter = @Counter + 1

      END

    

    SELECT convert(VARCHAR,SEQUENCE) + '. ' + convert(VARCHAR,[Left]) +

            ' + ' + convert(VARCHAR,[Right]) + ' = '

    FROM   @Drill

    

    IF @Result = 1

      BEGIN

        UPDATE @Drill

        SET    Result = convert(VARCHAR,([Left] + [Right]))

        

        SELECT convert(VARCHAR,SEQUENCE) + '. ' + convert(VARCHAR,[Left]) +

            ' + ' + convert(VARCHAR,[Right]) + ' = ' + Result

        FROM   @Drill

      END

  END

 

GO

 

EXEC sprocMathTrainerAddition

  60 ,

  30 ,

  1

 

GO

 

/* Partial results

 

1. 18 + 18 =

2. 1 + 19 =

3. 20 + 0 =

4. 14 + 11 =

5. 15 + 11 =

6. 29 + 17 =

7. 3 + 26 =

8. 12 + 18 =

*/

SQLUSA - The Best SQL Server 2005 Training in the World
 
 
SQLUSA.com Home Page