2010-07-21 12 views

Respuesta

47

Básicamente necesita ejecutar la instalación nuevamente para reconstruir la base de datos master con la nueva intercalación. No puede cambiar la intercalación de todo el servidor de ninguna otra manera.

Ver:

Actualización: si desea cambiar la intercalación de una base de datos, se puede obtener el colación actual utilizando este fragmento de T-SQL:

SELECT name, collation_name 
FROM sys.databases 
WHERE name = 'test2' -- put your database name here 

Esto dará lugar a un valor algo así como: "sensible a mayúsculas"

Latin1_General_CI_AS 

Los medios _CI - si quieres mayúsculas y minúsculas, utilice _CS en su lugar:

Latin1_General_CS_AS 

Así que su T- comando SQL sería:

ALTER DATABASE test2 -- put your database name here 
    COLLATE Latin1_General_CS_AS -- replace with whatever collation you need 

, usted puede obtener una lista de todas las colaciones disponibles en el servidor usando:

SELECT * FROM ::fn_helpcollations() 

Se puede ver cotejo actual del servidor usando:

SELECT SERVERPROPERTY ('Collation') 
+0

Ok, gracias por la información. Ahora, al menos, quiero intentar cambiar la intercalación de la base de datos para que no distinga entre mayúsculas y minúsculas. Encontré esta 'ALTER DATABASE DEV_DB COLLATE [clave insensible a mayúsculas/minúsculas] para la misma. Pero no estoy seguro sobre el valor que se utilizará para distinguir entre mayúsculas y minúsculas. ¡Cualquier ayuda en eso es apreciable! – JPReddy

2

Usted puede hacer eso, pero los cambios afectarán a los nuevos datos que se insertan en la base de datos. En el largo plazo siga como se sugirió anteriormente.

También hay ciertos trucos que puede anular la intercalación, como los parámetros de los procedimientos almacenados o las funciones, los tipos de datos alias y las variables tienen asignada la intercalación predeterminada de la base de datos. Para cambiar la intercalación de un tipo de alias, debe soltar el alias y volver a crearlo.

Puede anular la intercalación predeterminada de una cadena literal utilizando la cláusula COLLATE. Si no especifica una intercalación, se asigna al literal la intercalación predeterminada de la base de datos. Puede usar DATABASEPROPERTYEX para encontrar la intercalación actual de la base de datos.

Puede anular el servidor, la base de datos o la intercalación de columnas especificando una intercalación en la cláusula ORDER BY de una instrucción SELECT.

Cuestiones relacionadas