Sunday, 10 April 2011

Cursors to operate row by row in table

DECLARE    @StateId INT,
        @StateName NVARCHAR(100),
        @StateCode NVARCHAR(5)
       
DECLARE Cur_State CURSOR
LOCAL SCROLL STATIC
FOR SELECT SM.StateId,SM.StateName FROM StateMaster SM

OPEN Cur_State
    FETCH NEXT FROM Cur_State INTO  @StateId,@StateName
    WHILE @@FETCH_STATUS=0
    BEGIN   
           
            SET @StateCode = SUBSTRING(@StateName,(CHARINDEX('(',@StateName,0)+1),3)
            SET @StateName = SUBSTRING(@StateName,0,CHARINDEX('(',@StateName,0))
                   
           
            UPDATE StateMaster SET StateName=@StateName,StateCode=@StateCode WHERE StateId=@StateId
           
                --PRINT @StateName+ ' '+ @StateCode
                   
                   
   
        FETCH NEXT FROM Cur_State INTO  @StateId,@StateName
    END
    CLOSE Cur_State
    DEALLOCATE Cur_State

No comments:

Post a Comment