26 junio 2012

SQL Server: Solución para ignorar lois acentos en una búsqueda

 En este sencillo ejemplo que muestro a continuación, muestro lo fácil que resulta evitar que en una búsqueda con where no haya distinciones entre las palabras con tildes o sin ellas

Así, por ejemplo me mostrará de igual modo el registro si busco por ALCALA DE GUADAIRA' como por ALCALÁ DE GUADAIRA'.

La solución está en po ner esto COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI al final de la sentencia WHERE. 
 

declare @clipo1_origen varchar(40)

set @clipo1_origen='ALCALÁ DE GUADAIRA'
 
select IntIdMunicipio, StrNombre from [bd_prueba].[dbo].[municipios] where upper(StrNombre) = upper(@clipo1_origen) COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI


Sin embaargo si lo que se quiere es ignorar las acentuaciones en toda la base de  datos (de modo pernanente o hasta que usted quiera desactivarlo), haga esto:

ALTER DATABASE [nombrebasededatos] COLLATE Modern_Spanish_CI_AI

Así afectará a toda la base de datos.


Saludos