Cómo usar el comando SQL Server Collate

Cómo usar el comando SQL Server Collate
Esta guía cubrirá los fundamentos de trabajar con el comando SQL Server Collate Command. Antes de llegar allí, ¿qué es una recopilación de servidor SQL??

¿Qué es la recopilación de SQL Server??

La recopilación de SQL Server se refiere a un conjunto de reglas que rigen cómo clasificar y comparar los datos de caracteres en una base de datos. SQL Server proporciona una amplia gama de colaciones para manejar datos de caracteres. Estas recopilaciones pueden manejar datos con lenguajes y regiones conflictivos, lo que permite que una base de datos sea compatible con aplicaciones de todo el mundo.

Niveles de recopilación de SQL Server

En el servidor SQL, hay tres niveles principales en los que puede definir las colaciones:

  1. Nivel de instancia de SQL Server
  2. Nivel de base de datos
  3. Nivel de columna

Tenga en cuenta que un nombre de recopilación puede ser una recopilación de Windows o un nombre de recopilación proporcionado por SQL Server.

Puede especificar el tipo de recopilación al crear una base de datos. Si no se especifica al crear una base de datos, SQL Server se debe poner en forma predeterminada a la recopilación utilizada por la instancia de SQL Server.

Del mismo modo, si no define la recopilación al crear una columna, SQL Server es predeterminado a la recopilación utilizada en esa base de datos.

Nivel de instancia de SQL Server

Puede establecer su recopilación preferida para su instancia de SQL Server durante la instalación. Si tiene el servidor SQL ya instalado, puede usar el Asistente del centro de instalación para redefinir su tipo de recopilación.

Para ver la recopilación actual de su instancia de SQL Server, abra el estudio de administración de SQL Server.

Haga clic con el botón derecho en su instancia de SQL Server y seleccione la opción Propiedades:

En la ventana Propiedades, seleccione la pestaña General en el menú izquierda. Esto mostrará la información general sobre su instancia de SQL Server, incluido el tipo de recopilación predeterminado:

En nuestro ejemplo, la recopilación predeterminada se establece en SQL_LATIN1_GENERAL_CP1_C1_AS. Esta es una recopilación de SQL Server en lugar de una recopilación de Windows, como lo indica el prefijo SQL_.

La otra parte contiene el nombre de la recopilación, en este caso, LATIN1_GENERAL_CP_AS. El valor CI indica que la recopilación no es insensible en el caso, mientras que como medios es sensible al acento.

Para obtener una descripción más detallada de la recopilación predeterminada del servidor SQL, use el procedimiento SP_HELPSORT como se muestra:

Ejec sp_helpsort;

El procedimiento debe devolver la información como se muestra:

Servidor COLELACIÓN POR LA COLECCIÓN
-----------------------------------------------------------------------------------------------------------------
Latin1 general, insensible a la caja, sensible al acento, insensible al kanatype, insensible al ancho para datos Unicode, orden de clasificación de SQL Server 52 en el código Página 1252 para datos no unicodos

Recopilación de nivel de base de datos

Podemos definir la recopilación a nivel de base de datos. Como se mencionó, a menos que se especifique explícitamente, una base de datos heredará la recopilación de la instancia de SQL Server.

Para ver la recopilación de una base de datos en el SQL Server Management Studio (SSMS), haga clic con el botón derecho en su base de datos de destino y abra la ventana Propiedades:

En la ventana Propiedades, seleccione la pestaña General y navegue a la sección de mantenimiento. Debería ver la recopilación de la base de datos en la lista:

En nuestro caso, la base de datos hereda la misma recopilación que la instancia de SQL Server.

Establecer la recopilación de la base de datos
Para establecer su recopilación deseada durante la creación de la base de datos, puede usar la consulta como se muestra a continuación:

Crear base de datos sample_database
Recopilar sql_latin1_general_cp1_cs_as;

En la consulta anterior, creamos una base de datos con la recopilación SQL_LATIN1_GENERAL_CP1_CS_AS. Es similar al sql_latin1_general_ci_ai, excepto que es sensible al caso y el acento, como lo indica CS y como en el nombre de la recopilación:

Establezca la recopilación en una base de datos existente
SQL Server le permite cambiar la recopilación después de la creación utilizando el comando ALTER Base de datos.

Por ejemplo, la siguiente consulta cambia la recopilación de la base de datos de sql_latin1_general_cp1_cs_as a sql_slovak_cp1250_cs_as:

Usar sample_database;
Alter Database sample_database recopile SQL_SLOVAK_CP1250_CS_AS;

Antes de cambiar la recopilación de la base de datos, asegúrese de que todas las conexiones a la base de datos estén cerradas. De lo contrario, la consulta fallará.

SQL Server muestra las colmaciones compatibles
Para ver las recopilaciones compatibles para su versión de SQL Server, use la consulta como se muestra a continuación:

Seleccione Nombre, Descripción del sys.fn_helpCollations ();

Si está utilizando SQL Server 2019, hemos proporcionado una lista de las Collations compatibles. Descargue el archivo en el recurso a continuación:

Columna de nivel de columna

En la mayoría de los casos, querrá que una columna de caracteres herede una recopilación similar a la base de datos. Sin embargo, puede especificar la recopilación de una columna explícitamente durante la creación de columnas.

Tenga en cuenta que solo puede definir una recopilación de columna si la columna es de tipo char como:

  1. Varar
  2. Nvarchar
  3. CARBONIZARSE
  4. Ntexto
  5. TEXTO

Para establecer una columna usando T-SQL, use la consulta de ejemplo como se muestra:

Crear información de la tabla (
Yo dint,
text_ varchar (50) COLLATE SQL_EBCDIC280_CP1_CS_AS
);

Para ver la recopilación de una columna, puede usar el procedimiento SP_HELP como se muestra a continuación:

Ejecut sp_help información;

El comando debe devolver información sobre la columna, incluida la recopilación como:

Conclusión

En este artículo, exploramos el concepto de colmaciones de SQL Server, qué son y cómo podemos ver o cambiar las colaciones en varios niveles, como el nivel de instancia de SQL Server, el nivel de la base de datos y el nivel de columna. Esperamos que hayas encontrado este artículo útil. Echa un vistazo a los otros artículos de Sugerencia de Linux para obtener más consejos y tutoriales.