lunes, 15 de septiembre de 2008

Diferenciar Mayusculas y minusculas en SQL Server 2005

Es común que cuando creemos un sistema con usuarios, queramos hacer diferenciación de mayusculas y minusculas para comparar el nombre de usuario y la contraseña.

Por defecto al instalar SQL este queda case insensitive, es decir cuando realizamos una consulta del tipo:

SELECT * FROM Usuarios WHERE user_name LIKE 'nombre_usuario' AND user_pass LIKE 'contrasena'

SQL considera que Turin = turin = TuRiN, entonces las contraseñas que utilizan mayusculas y minusculas para ser mas dificiles de decifrar no tienen sentido.

En SQL Server 2000, es necesario reinstalar y configurar busquedas binarias, en SQL 2005 es mas facil, ya que podemos cambiar las tablas e incluso las columnas para que sean case sensitive.

Para que una columna distinga mayusculas de minusculas se debe:

-Seleccionar la tabla que se desea modificar
-Click derecho y seleccionar modificar
-marcar sobre la columna que necesitamos que distinga mayusculas de minusculas
-buscar la propiedad "Intercalacion" o "Collation"
-y seleccionar "Distinguir mayúsculas de minúsculas"

Ahora, nuestras consultas sobre esa columna serán Case Sensitive.

Saludos.

No hay comentarios: