La Intercalación (o Collation) es la configuración de caracteres que tendrán las bases de datos, siendo Unicode o No Unicode según la configuración elegida. Es por ello que nuestro servidor deberá tener la correcta, de lo contrario deberemos realizar ciertos pasos para lograr cambiar la intercalación de nuestra instancia SQL Server.

Básicamente, y algo que nos importa a México (Latinos e idioma Español en general), es si se aceptarán o no por ejemplo acentos, letra Ñ, etc., además de configuraciones adicionales por ejemplo:

  • Al momento de indexar o trabajar con querys
  • Si se debe diferenciar entre mayúsculas y minúsculas
  • Como será la prioridad de ordenación es decir la prioridad que tendrán los números, letras o símbolos al momento de ordenarlos.

Dicho lo anterior al momento de implementar una instancia de SQL Server se elige esta intercalación, y una Base de Datos puede mantener la predeterminada o tener una Intercalación diferente, pero hay aplicaciones que exigen que la Intercalación del Servidor (Instancia) tenga una configuración específica, y aquí es donde empiezan las complejidades, debido a que las tablas temporales y base de datos master, trabajan con la intercalación del servidor.

La decisión de que hacer, radica en la importancia de la instancia y las políticas a las que nos enfrentemos en la organización así como la posibilidad de manipular el servidor. Por lo tanto las opciones que podemos tener son:

  1. Cambiar la Intercalación de la Instancia de trabajo.- Será necesario retirar todas las bases de datos y dar un mantenimiento a la instancia.
  2. Instalar una nueva instancia.- entramos a un tema de licenciamiento y de rendimiento ya que no es lo mismo una base de datos más en una instancia adicionar el procesamiento que la instancia en sí requiere.
  3. Si es un servidor nuevo, sin problema podemos retirar las bases de datos y realizar un mantenimiento.

Requisitos para cambiar la intercalación

  • No recomiendo éste procedimiento en un servidor de producción, sin antes haber probado el proceso en una copia del servidor o un ambiente controlado para los pasos y posibles problemas.
  • Antes que nada te explico que deberás tener una ventana de mantenimiento si es un servidor de producción ya que será necesario desconectar todas las bases de datos, es decir, dejar la instancia sin bases de datos como si estuviera recién creada.
  • También es necesario que realices una prueba en otro servidor para que conozcas el procedimiento.
  • Disco o instalador de la versión de tu instancia de SQL Server.
  • Las instrucciones son utilizando Management Studio.

How To – Cambiar intercalación de una instancia de SQL Server

1. Identificar la collation con la que cuentas para cerciorarte que necesitas cambiarla. En el ejemplo tenemos una collation en Francés. Puedes confirmarlo en las Propiedades del Servidor.

Intercalación de una instancia de SQL Server.
Consulta gráfica de la Intercalación del servidor

SELECT name, collation_name FROM sys.databases

Collation-query-results

2. Identificar la collation a la que necesitas cambiar, puedes revisar la biblioteca de configuraciones aquí.

En mi ejemplo, colocaré un cambio hacia Latin1_General_CI_AS

3. Una ves decidido, se procede a desconectar bases de datos.
Esto significa que nuestro SQL server debe estar sin base de datos solo debe tener las bases de datos del sistema.

3a.- Ésto pueda realizarse gráficamente la función “desvincular”

Desvincular una base de datos gráficamente desde Management Studio (SSMS)

3b.- Código transact-sql

EXEC sp_detach_db ‘CRM_General’, ‘true’;

Instancia de SQL Server sin bases de datos.

4. En el cmd para directorio raíz de tu medio de instalación
Es necesario ejecutar la siguiente cadena en una ventana de comandos con derechos de administrador.

Setup.exe /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=DESKTOP-LKIMSS7\gera / /SAPWD= nanosql17 /SQLCOLLATION=Latin1_General_CI_AS

Comandos a ejecutar para el cambio de la intercalación en CMD.

Lo anterior recreará la instancia, es decir, para la instancia especificada, se crearán los permisos para el usuario Windows indicado, y se colocará la contraseña al usuario sa (SAPWD), finalmente, se asignará la collation .

Comprobación del cambio de la intercalación de una instancia.

Posterior a que el asistente termine, confirmamos que la instancia tenga ya la nueva collation.

Comprobación del cambio de la intercalación de una instancia.

6. Como último paso, debemos adjuntar de nuevo las bases de datos anteriormente desvinculadas.

Posibles errores

En caso de algún error se recibirá la alerta, como en éste caso donde la collation es incorrecta.

Error durante cambio de la intercalación de una instancia.,

Conclusión

Como siempre, es mejor siempre hacer pruebas locales en una copia de producción, o un ambiente nuevo solo para pruebas, para que compruebes como es el procedimiento.

Éste ajuste para cambiar la intercalación de nuestra instancia de SQL Server, si bien es funcional, personalmente recomendaría instalar una nueva instancia si la capacidad del servidor y el licenciamiento se los permiten, Ya que como ves, prácticamente es la re-instalación y configuración de la instancia.

Así mismo, hay otras configuraciones en las que es posible ajustar el collation solamente a una base datos o tablas que compartiré mas adelante.

Si gustas un tema en especial, tienes comentarios o sugerencias, puedes dejarlas abajo en la caja de comentarios o en mis redes sociales.

No dejes de ver también: ¿Dónde está el Administrador de Configuración de SQL Server?

One Comment

Deja un comentario! :)