Cursor

IF OBJECT_ID('temdb..#temp_SBBR') IS NOT NULL DROP TABLE #temp_SBBR
    CREATE TABLE #temp_SBBR(CreateDate DATETIME,RequestTypeID INT,SKUGroupID INT)
    
    DECLARE @CreateDate DATETIME, @RequestTypeID INT, @SKUGroupID INT, @BookingItemID VARCHAR(MAX)
    DECLARE SBCursor CURSOR FOR SELECT CreateDate, RequestTypeID, SKUGroupID, BookingItemID FROM SyncBookingDetail 
    WHERE CreateDate >= @UpdateDate AND MSTErrorCode = '' AND BookingItemID LIKE '%,%'
    
    OPEN SBCursor
    FETCH NEXT FROM SBCursor INTO @CreateDate, @RequestTypeID, @SKUGroupID, @BookingItemID
    WHILE(@@FETCH_STATUS = 0)
    BEGIN
        WHILE(CHARINDEX(',', @BookingItemID) > 0)
        BEGIN
            INSERT INTO #temp_SBBR VALUES(@CreateDate, @RequestTypeID, @SKUGroupID)
            SET @BookingItemID = STUFF(@BookingItemID, 1, CHARINDEX(',',@BookingItemID), '')
        END
        INSERT INTO #temp_SBBR VALUES(@CreateDate, @RequestTypeID, @SKUGroupID)
        FETCH NEXT FROM SBCursor INTO @CreateDate, @RequestTypeID, @SKUGroupID, @BookingItemID
    END
    
    CLOSE SBCursor
    DEALLOCATE SBCursor
    
    INSERT INTO #temp_SBBR 
    SELECT CreateDate, RequestTypeID, SKUGroupID, BookingItemID FROM SyncBookingDetail 
    WHERE CreateDate >= @UpdateDate AND MSTErrorCode = '' AND BookingItemID NOT LIKE '%,%'

 

posted @ 2012-09-04 14:25  Müller  阅读(299)  评论(0编辑  收藏  举报