El Collation  juego de caracteres  o letras asociadas a una base de datos SQL server ANSI como Microsoft SQL Server , Oracle o MySQL.

El collation permite asociar un valor único a cada letra dependiendo del idioma seleccionado, en collation europeo una posición puede estar asociada a la ñ mientras que en collation asiatico estar asociado a caracteres chinos lo cual permite que los europeos veamos la ñ mientras los asiaticos sus caracteres sin gastar demasiado espacio.

Sólo se aplican cuando guardamos datos en formato no unicode es decir en el caso de MSSQL server cuando guardamos los datos como varchar en vez de nvarchar.

La desventaja de guardar campos en formato unicode es que ocuparán mucho más espacio e indirectamente consumirán más recursos pero serán 100% compatibles 

Por defecto si no especificamos Collation al crear una nueva base de datos se selecciona el predeterminado por la base de datos y éste a su vez está predeterminado por el idioma que tengamos seleccionado en el sistema operativo donde instalamos el servidor de bases de datos.

Si queremos crear una base de datos desde Transact SQL especificando el collation la sintaxis sería algo similar a esto:


CREATE DATABASE
[Clientes-ES]

ON (NAME = N'DB_Spanish_Data',
      FILENAME = N'C:\MSSQL\data\Clientes-ES.MDF',
      SIZE = 1,
      FILEGROWTH = 10%)
LOG ON (NAME = N'DB_Spanish_Log',
      FILENAME = N'C:\MSSQL\data\Clientes-ES.LDF',
      SIZE = 1,
      FILEGROWTH = 10%)
COLLATE Modern_Spanish_CI_AI
GO

Si creo la base de datos desde un asistente simplemente me aparecerá un desplegable con los posibles collations y la posibilidad de usar el predeterminado de la base de datos. 

¿Y ahora qué?

El collation no sólo indica a que valor interno de una página de códigos  se asigna cada letra, también indica si el motor de SQL distingue mayusculas y minusculas o si trata las vocales acentuadas igual que las no acentuadas de forma que "cáspita" sea lo mismo que "caspita" en cuanto a busquedas y ordenación se refiere, también podemos cambiar el collation sólo para una consulta concreta pero eso es tema para otro articulo.

¿Dudas?

No os canseis de preguntar en los foros de Devjoker

Pablo Gumpert.

www.aldeamedia.com

Pablo  Gumpert  Fernandez (aldeamedia)
¿Qué es el Collation en SQL ?
Pablo Gumpert Fernandez (aldeamedia)

Pablo Gumpert es formador y consultor oficial de Microsoft para .NET y SQL server.Lleva desarrollando desde hace más de diez años y durante ese tiempo ha trabajado como programador de videojuegos ,analista informático, experto en seguridad, DBA ... Actualmente se dedica sobre todo a la formación. Su especialidad es la programación en .NET aunque también es experto en MSSQL Server y en el año 2002 fundó su propia empresa colaboradora de diversos centros partner Microsoft.
Fecha de alta:06/09/2006
Última actualizacion:06/09/2006
Visitas totales:69756
Valorar el contenido:
Últimas consultas realizadas en los foros
Últimas preguntas sin contestar en los foros de devjoker.com