Hi...
As everyone now's we can use Cursors for row-by-row operations in SQL Stored procedures. The drawback of using this option is Performance. So to overcome the issue we can write a work around code to implement row-by-row operations in your SQL stored procedure. Following are the code written for this with appropriate comments to explain its operation. 
BEGIN 
-- Here we Initialize variables
DECLARE @iNextRowId int,@iCurrentRowId int,@iLoopControl int,@FundID int, @FundIndexId int
SELECT @iLoopControl = 1
SELECT @iNextRowId = MIN(ID)FROM Fund_Index_Relationship Where Fund_ID = @ID
-- Retrieve 1st row
SELECT @iCurrentRowId = ID,
@FundID = @ID, 
@FundIndexId = FundIndex_ID
FROM Fund_Index_Relationship 
WHERE ID = @iNextRowId AND Fund_ID = @ID,
  -- Your Code Logic Starts
  -- Code...
  -- Your Code Logic End
   -- Loop is started
WHILE @iLoopControl = 1
   BEGIN
      SELECT @iNextRowId = NULL
     -- Getting next ID
     SELECT @iNextRowId = MIN(ID)
     FROM Fund_Index_Relationship
     WHERE Fund_ID = @ID AND ID > @iCurrentRowId 
-- check whether there is a ID next
     IF ISNULL(@iNextRowId,0) = 0
        BEGIN
           BREAK
       END
    -- Your Code Logic Starts
    -- Code...
    -- Your Code Logic End
    -- get the next row.
    SELECT @iCurrentRowId = ID,
    @FundID = @ID,
    @FundIndexId = FundIndex_ID
    FROM Fund_Index_Relationship
    WHERE ID = @iNextRowId
  END
 
 
No comments:
Post a Comment