• I think that you're overcomplicating it. This gives the results that you're looking for without any loops.

    INSERT PolicyReviewLocks(PolicyNumber, UserID)

    SELECT DISTINCT pr.PolicyNumber, @User

    FROM PolicyReviews pr

    INNER JOIN PolicyReviewStatus prs

    ON prs.ReviewID = pr.ReviewID

    WHERE prs.Status = 'P'

    AND NOT EXISTS (

    SELECT 1

    FROM PolicyReviewLocks prl

    WHERE prl.PolicyNumber = pr.PolicyNumber

    )

    SELECT *

    FROM PolicyReviewLocks prl

    Drew

    J. Drew Allen
    Business Intelligence Analyst
    Philadelphia, PA