/*Execultar para encontrar todos clientes com numero repetido*/
declare @CodigoSelecao as nvarchar(max);
set @CodigoSelecao = (SELECT top 1 cod FROM tblCliente
GROUP BY cod
HAVING Count(*) > 1)

/*Execultar para encontrar numeros iguais*/
declare @CodigoSugerido as nvarchar(max);
declare @codigoEncontrado as nvarchar (max);
declare @UltimoCodigo as nvarchar(max);

set @CodigoSugerido = @CodigoSelecao

IF @CodigoSugerido = '' 
     set @CodigoSugerido  =(Select (ISNULL(Max(cod),0)+1) from tblCliente (NOLOCK) )
ELSE 
     set @UltimoCodigo = (Select Max(cod) from tblCliente (NOLOCK) )  

set @codigoEncontrado=(select top 1 cod from tblCliente (NOLOCK)  where Cod=@CodigoSugerido)



WHILE @codigoEncontrado = @CodigoSugerido 
BEGIN   
    SET @CodigoSugerido = @CodigoSugerido + 1
    set @codigoEncontrado=(select top 1 cod from tblCliente (NOLOCK)  where Cod=@CodigoSugerido)
END

select @CodigoSugerido,@codigoEncontrado,@UltimoCodigo,@CodigoSelecao

UPDATE TOP (1) A 
SET cod = @CodigoSugerido
FROM tblcliente A
JOIN (
    SELECT TOP 1 *
    FROM tblcliente B WITH(NOLOCK) where B.cod = @CodigoSelecao
    ORDER BY cod DESC
) B ON B.cod = a.cod

SELECT cod, Count(*) FROM tblCliente
GROUP BY cod
HAVING Count(*) > 1