Aqui un script ajustado por mi partner Jose Flores que en plena clase de db me envio el truco para luego de tener los registro de rut calcular el codigo verificador, en sp sql 2005.
/****** Script para el comando SelectTopNRows de SSMS ******/
declare @Rut int
declare @dv varchar(1)
declare @valor int
declare @myRut varchar(8)
set @dv = ”
declare dtDatos cursor for
SELECT [Rut]
FROM [base].[tabla]
order by rut
open dtDatos
FETCH NEXT FROM dtDatos
into @Rut
WHILE @@FETCH_STATUS = 0
BEGIN
set @myRut=convert(varchar(8),@Rut)
if (len(@myRut))=8
begin
set @valor=0
set @valor = @valor + convert(int,substring(@myRut,8,1))*2
set @valor = @valor + convert(int,substring(@myRut,7,1))*3
set @valor = @valor + convert(int,substring(@myRut,6,1))*4
set @valor = @valor + convert(int,substring(@myRut,5,1))*5
set @valor = @valor + convert(int,substring(@myRut,4,1))*6
set @valor = @valor + convert(int,substring(@myRut,3,1))*7
set @valor = @valor + convert(int,substring(@myRut,2,1))*2
set @valor = @valor + convert(int,substring(@myRut,1,1))*3
set @valor = @valor % 11
if (@valor = 1)
begin
set @dv=’k’
end
if @valor = 0
begin
set @dv=’0′
end
if @valor>1 and @valor<11
begin
set @dv=str(11-@valor,1)
end
end
Update [base].[tabla] Set [Dv]=@dv Where Rut=@Rut
FETCH NEXT FROM dtDatos INTO @Rut
end
CLOSE dtDatos
DEALLOCATE dtDatos