Attenzione alla funzione Replace di SQL Server 2005, non fa la sostituzione dei caratteri blank nei tipi char posizionati alla fine della stringa
--2005
declare @s char(16)

set @s = 'a    '

select  REPLACE(@s, ' ', '*')  -- mi aspettavo una 'a' seguita da 15 asterischi
ritorna
---------------------------------------------------------
a

(1 row(s) affected)
in pratica ignora sia gli spazi finali che quelli di riempimento del tipo char

Su SQL Server 2008 funziona correttamente
---------------------------------------------------------
a***************

(1 row(s) affected)
cambiando il tipo in varchar(16) entrabi ritornano correttamente
---------------------------------------------------------
a****

(1 row(s) affected)
Testata su un SQL Server 2005 v. 9.0.4053 e su un SQL Server 2008 v. 10.50.1600