una forma mas....sencilla? de hacer lo que buscas :)
Código SQL:
Ver originalCREATE TABLE #prueba(
rut nvarchar(20))
INSERT INTO #prueba (rut) VALUES ('17.341.280-6')
INSERT INTO #prueba (rut) VALUES ('1458654-k')
INSERT INTO #prueba (rut) VALUES ('1458654')
INSERT INTO #prueba (rut) VALUES ('4582254-K')
INSERT INTO #prueba (rut) VALUES ('21.585.585-4')
INSERT INTO #prueba (rut) VALUES ('5896654-k')
SELECT
CASE WHEN CHARINDEX('-',rut)>0 THEN SUBSTRING(rut,1,CHARINDEX('-',rut)-1) + REPLICATE('0',len(rut)-CHARINDEX('-',rut)+1) ELSE
CASE WHEN len(rut)<10 THEN REPLICATE('0',10-len(rut))+ rut
END
END dato FROM #prueba
saludos!