El uso de un bucle WHILE u otro proceso iterativo no suele ser la forma más eficiente de procesar datos en SQL Server.
WHILE
Debe preferir utilizar una consulta basada en conjuntos en los datos para lograr los mismos resultados, cuando sea posible