Collations en SQL Server, ¿Es importante?, ¿Cuán importante es?
Enviado por tomas • 14 de Octubre de 2018 • 1.092 Palabras (5 Páginas) • 440 Visitas
...
USE DBInventory GO SELECT DATABASEPROPERTYEX('DBInventory', 'Collation');
Una vez más AUTO_CLOSE se hace presente con sus cositas, está propiedad es bastante especial anda por donde no se le llama. En este post no hablaremos más de él, por ahora continuemos. Para listar los collations para todas las bases del servidor puede usar:
Para SQL Server 2000/2005/2008: SELECT [name], DATABASEPROPERTYEX( [name], 'Collation') AS collation FROM sysdatabases
Para SQL Server 2005/2008 : SELECT name, collation FROM sys.databases
Por otra parte, también se puede mantener o crear tablas con columnas cuyos collations de cada una puede ser diferente, depende de los requerimientos de negocio. Aquí un granito para que usted se guie al respecto. En este tema deseo aclarar un escenario que si hasta el momento usted no ha tenido oportunidad de trabajarlo, seguro que lo hará pronto. El caso es cuando por ejemplo, usted tiene una base de datos con objetos cuyos collations son diferentes y desea estandarizar el collation usado. ¿Qué hacer?, muchas personas aún piensan que cambiando el collation a nivel de base de datos los objetos contenidos la heredarán. Tenga mucho cuidado, la alteración del collation sólo afectará a las nuevas columnas y/o expresiones más no a las ya existenes, por lo tanto, es necesario realizar el cambio de collation para cada uno de los objetos según se requiera (el mismo concepto se aplica cuando se altera a nivel de servidor). Puede servirse de Setting and Changing the Column Collation para conseguirlo, aunque es obvio que requerirá realizar cambios en cientos o miles de columnas pues para eso puede usar o escribir lo comúnmente usado código que genera código.
Quiero prevenir que cuando vaya a alterar el collation de alguna columna que participa en un índice, PK, check constraints, etc se disparará un error indicándole la dependencia. Para solucionar esto se debe eliminar el índice ó PK, efectuar el cambio de collation, luego recrear lo dropeado. Este caso generalmente lo he experimentando en proyectos de migraciones durante procesos de estandarizaciones de collations, es importante ser detalloso y precavido al manipular cosas a este nivel.
En realidad es muy interesante todo tema relacionado al manejo y estandarización de collations, selección de collations, escenarios diversos y ricos donde se aprende bastante, especialmente cuando deseamos integrar sistemas multi idiomas, o cuando un equipo de desarrollo desea desarrollar sistemas orientados a mercados globales, es asi que Microsoft sigue mejorando las versiones y en SQL Server 2008 se han incorporado 80 nuevas intercalacionesideales para trabajar sobre Windows Server 2008. También otros collations quedan obsoletos y de deprecian. Más información de estas novedades las puedes revisar en Working with the New SQL Server 2008 Collations and Earlier Versions of the Native Data Provider. Excelente, espero más adelante compartir experiencias más específicas con los que lio en el dia a dia, y su manejo con datos unicode y no unicode.
...