• BEGIN TRY

    CREATE TABLE #aaa

    (

    Id BIGINT IDENTITY(1,1) NOT NULL PRIMARY KEY ,

    xyzmasterCode VARCHAR(15) NOT NULL )

    INSERT INTO#aaa (xyzmasterCode,NumberOfRows)

    SELECT DISTINCT xyzmasterCode, COUNT(*)

    FROM xyz

    WHERE xyzmasterCode BETWEEN '0' AND 'Z'

    AND filterDate <= @filterDate

    GROUP BY xyzmasterCode

    SET @Id = 0

    WHILE 1=1

    BEGIN

    BEGIN TRAN

    DELETE a

    FROM xyz a,#aaa

    WHERE a.xyzmasterCode = #aaa.xyzmasterCode

    AND #aaa.Id between @Id and @Id + 100

    AND filterDate <= @filterDate

    DELETE J

    FROM xyzmaster J,#aaa

    WHERE J.Code = #aaa.xyzmasterCode

    AND#aaa.Id between @Id and @Id + 100

    COMMIT TRANSACTION;

    CHECKPOINT

    IF @DeleteRowcount <=0

    BREAK

    SET @Id = @Id + 100

    END

    END TRY