Cómo manejar la colación en bases de datos SQL Server
La colación se refiere a la página de códigos, la sensibilidad a las mayúsculas y minúsculas, la sensibilidad a los acentos y el idioma o alfabeto utilizados en una base de datos. Normalmente, la colación se maneja a nivel de base de datos. Por ejemplo, la mayoría de los administradores de bases de datos en Norteamérica utilizan la colación por defecto, que no distingue entre mayúsculas y minúsculas. La colación no afecta a los datos en sí, sino a cómo se comparan e indexan.
Forzar el uso de una colación específica
En este artículo, veremos cómo se puede forzar el uso de una colación específica sin tener en cuenta la colación especificada al crear la base de datos. También analizaremos algunas de las complicaciones que surgen cuando una base de datos tiene que lidiar con múltiples juegos de caracteres.
Crea una base de datos de prueba
Antes de comenzar con los experimentos de este artículo, vamos a crear una base de datos de prueba y poblarla con algunas filas. Puedes utilizar el siguiente fragmento de código:
CREATE DATABASE ejemplo; USE ejemplo; CREATE TABLE usuarios ( id INT PRIMARY KEY, nombre VARCHAR(50) COLLATE Latin1_General_CI_AS ); INSERT INTO usuarios (id, nombre) VALUES (1, 'Juan'), (2, 'Ana'), (3, 'María'), (4, 'Pedro');
Una vez que hayas creado la base de datos y la tabla de usuarios, estaremos listos para realizar los ejemplos que se presentan a continuación.
Ejemplos de consultas con diferentes colaciones
A continuación, se presentan algunas consultas de ejemplo que puedes ejecutar en la base de datos de prueba. En cada caso, la consulta devuelve las cuatro filas. Esto es de esperar cuando se selecciona una colación que no distingue entre mayúsculas y minúsculas. Pero, ¿qué sucede cuando necesitamos encontrar una fila específica mediante una coincidencia exacta?
En este caso, la colación entra en juego. Aunque un administrador de base de datos suele especificar la colación al crear la base de datos, es posible aplicar una colación diferente después del hecho simplemente agregando un predicado COLLATE a la cláusula WHERE. A continuación, se muestra un ejemplo:
Cómo instalar y configurar Sybase Adaptive Server Enterprise (ASE) en LinuxSELECT * FROM usuarios WHERE nombre = 'maría' COLLATE Latin1_General_CS_AS;
La primera consulta devuelve exactamente una fila, mientras que la segunda no devuelve ninguna.
Modificando la colación de una fila
Supongamos que deseamos cambiar todas las posibles variaciones de la palabra 'Pedro' a 'Pédro'. Podemos hacerlo fácilmente con el código siguiente:
UPDATE usuarios SET nombre = 'Pédro' WHERE nombre COLLATE Latin1_General_CS_AS LIKE 'pedro';
Ejecutar esta transacción nos permite hacer esa modificación en los datos. Esto es especialmente útil cuando se heredan datos de bases de datos mainframe y se desea corregir la escritura de palabras en mayúsculas.
Obtener información sobre las colaciones disponibles
Si deseas obtener una lista de todas las colaciones disponibles, junto con explicaciones concisas, puedes ejecutar la siguiente consulta:
SELECT * FROM ::fn_helpcollations();
Para determinar la colación predeterminada de una base de datos específica, puedes utilizar el siguiente código:
SELECT collation_name FROM master.sys.databases WHERE Name='ejemplo';
Conclusiones
La colación en las bases de datos determina cómo se comparan y ordenan los datos. Es importante comprender cómo funciona la colación y cómo se puede modificar para obtener los resultados deseados. Esperamos que este artículo te haya proporcionado una visión general útil sobre la colación en las bases de datos.
Qué es sudo y por qué deberías usarloEn Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Gestión de datos, allí encontraras muchos artículos similares a Cómo manejar la colación en bases de datos SQL Server , tenemos lo ultimo en tecnología 2023.
Artículos Relacionados