J'ai récemment installé SQL Server 2008 et j'ai sélectionné le classement comme sensible à la casse. Je veux qu'il soit insensible à la casse pour toute l'instance (pas pour une base de données dans cette instance). Si je modifie le classement, cela affecte-t-il les bases de données existantes? si oui de quelle manière?
Vous devez essentiellement exécuter à nouveau l'installation pour reconstruire la base de données master
avec le nouveau classement. Vous ne pouvez pas modifier le classement du serveur entier d'une autre manière.
Voir:
Mise à jour: si vous souhaitez modifier le classement d'une base de données, vous pouvez obtenir le classement actuel en utilisant cet extrait de code T-SQL:
SELECT name, collation_name
FROM sys.databases
WHERE name = 'test2' -- put your database name here
Cela donnera une valeur quelque chose comme:
Latin1_General_CI_AS
Le _CI
signifie "insensible à la casse" - si vous voulez respecter la casse, utilisez _CS
à sa place:
Latin1_General_CS_AS
Votre commande T-SQL serait donc:
ALTER DATABASE test2 -- put your database name here
COLLATE Latin1_General_CS_AS -- replace with whatever collation you need
Vous pouvez obtenir une liste de tous les classements disponibles sur le serveur en utilisant:
SELECT * FROM ::fn_helpcollations()
Vous pouvez voir le serveur classement actuel en utilisant:
SELECT SERVERPROPERTY ('Collation')
Vous pouvez le faire, mais les modifications affecteront les nouvelles données insérées dans la base de données. À long terme, suivez les suggestions ci-dessus.
Il existe également certaines astuces que vous pouvez remplacer le classement, telles que les paramètres des procédures ou fonctions stockées, les types de données d'alias et les variables qui sont affectées au classement par défaut de la base de données. Pour modifier le classement d'un type d'alias, vous devez supprimer l'alias et le recréer.
Vous pouvez remplacer le classement par défaut d'une chaîne littérale à l'aide de la clause COLLATE. Si vous ne spécifiez pas de classement, le littéral se voit attribuer le classement par défaut de la base de données. Vous pouvez utiliser DATABASEPROPERTYEX pour trouver le classement actuel de la base de données.
Vous pouvez remplacer le classement du serveur, de la base de données ou des colonnes en spécifiant un classement dans la clause ORDER BY d'une instruction SELECT.