Procedimiento Almacenado en SQL Server para quitar acentos de una tabla y un campo a fuerza bruta q funciona de la siguiente forma:
Quiza no es muy elegante pero funciona.
--Tabla CREATE TABLE [dbo].[Acentos] ( [Acento] [varchar] (10) COLLATE Traditional_Spanish_CI_AI NULL , [SinAcento] [varchar] (10) COLLATE Traditional_Spanish_CI_AI NULL ) ON [PRIMARY] GO --Los Valores --Pueden Insertar valores como Ñ por N INSERT Acentos SELECT '�?' , 'A' GO INSERT Acentos SELECT 'É' , 'E' GO INSERT Acentos SELECT '�?' , 'I' GO INSERT Acentos SELECT 'Ó' , 'O' GO INSERT Acentos SELECT 'Ú' , 'U' GO --El Procedimiento Almacenado CREATE PROC pQuitaAcentos ( @Tabla varchar(255) ,@Campo varchar(255)) AS DECLARE @Query varchar(2000) ,@Renglones int ,@Cuenta int SET @Renglones=1 SET @Cuenta=0 WHILE @Renglones >0 BEGIN SELECT @Query='UPDATE '+@Tabla+ ' SET '+@Campo+'=REPLACE(UPPER('+@Campo+'),Acento,SinAcento) FROM '+@Tabla+' , Acentos WHERE '+@Campo+' LIKE '+CHAR(39)+'%'+Char(39)+'+Acento+'+CHAR(39)+'%' +CHAR(39) EXECUTE (@Query) SELECT @Renglones=@@RowCount SELECT @Cuenta=@Cuenta+1 --Numero de ciclos a entrar maximo IF @Cuenta=10 BEGIN SELECT @Renglones=0 END END GO
A mi no me funciona, me gustaria saber que puede ser