Friday, August 28, 2009

WHILE LOOP Stored Procedure - Class example

Add 5 new customers and date


ALTER PROCEDURE spAddCustomerIDtoOrdersFiveTimes
@CustID NCHAR(5)
AS
DECLARE @counter INT
SET @counter = 0

WHILE @counter < 5
BEGIN
INSERT INTO Orders (CustomerID, OrderDate)
VALUES (@CustID, DATEADD(day,@counter,GETDATE()))

SET @counter = @counter +1
END

RETURN


Calculate to new salary average


ALTER PROCEDURE spIncreaseSalUntilTargetReached
@target money
AS
DECLARE @avg MONEY
DECLARE @count INT

SET @count = 0
SELECT @avg = AVG(SAL) FROM EMP

WHILE @avg < @target
BEGIN
UPDATE EMP
SET SAL = SAL + 50

SELECT @avg = AVG(SAL) FROM EMP
SET @count = @count + 1
END

PRINT 'No of records updated: ' + CAST(@count AS VARCHAR(20))
PRINT 'Calculated AVG: ' + CAST(@avg AS VARCHAR(20))

RETURN

No comments:

Post a Comment