Comment déterminer si une instance de SQL Server est sensible à la casse ou non
-
10-07-2019 - |
Question
Comment savoir si une instance de SQL Server 2005 autorise ou non les bases de données sensibles à la casse?
Par sensible à la casse, j'entends sensibilité à la casse des objets de la base de données, c'est-à-dire que les deux instructions suivantes ne sont pas équivalentes:
SELECT * FROM TABLE
SELECT * FROM table
J'ai consulté les pages de propriétés du serveur (dans Management Studio), mais je ne pouvais pas le voir.
La solution
SELECT DATABASEPROPERTYEX('DatabaseNameHere', 'Collation') SQLCollation;
Renvoie " SQL_Latin1_General_CP1_CI_AS ", le CI est ce qui indique l'insensibilité à la casse
Autres conseils
Dans Management Studio, cliquez avec le bouton droit de la souris sur Instance dans l'explorateur d'objets, puis cliquez sur "Propriétés". pour voir les propriétés du serveur. Dans la section "Général" section regarde la collation. Le paramètre par défaut, insensible à la casse, est SQL_Latin1_General_CP1_CI_AS. Le paramètre sensible à la casse est Latin1_General_CS_AS.
Le classement d'une base de données peut être différent du classement du serveur. Il n'y a pas de restriction.
Lorsque vous créez CREATE DATABASE, vous le spécifiez ici ou cela suppose le classement des bases de données model (qui doit être le classement du serveur).
SELECT
DATABASEPROPERTYEX('MyDB', 'Collation'),
SERVERPROPERTY ('Collation')