Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Variables sensibles à la casse dans SQL Server

Vous devez modifier le classement du serveur pour qu'il soit sensible à la casse pour obtenir le comportement souhaité. Il ne suffit pas de changer le classement de la base de données.

Le classement par défaut d'une installation SQL Server, SQL_Latin1_General_CP1_CI_AS n'est pas sensible à la casse.

Il semble que vous souhaitiez modifier le classement de votre serveur à celui qui est insensible à la casse. Choisissez-en un avec _CS . Le _CI signifie "insensible à la casse ", et la casse est _CS . Peut-être voudrez-vous Latin1_General_CS_AS .

C'est une excellente réponse à une question précédente sur la modification du classement SQL Server en insensible à la casse à partir de sensible à la casse ?.

À partir de la documentation en ligne de SQL Server :

COLLER (Transact-SQL)

Le classement d'un identifiant dépend du niveau auquel il est défini.

  • Les identifiants des objets au niveau de l'instance, tels que les connexions et les noms de base de données, se voient attribuer le classement par défaut de l'instance.
  • Les identificateurs d'objets au sein d'une base de données, tels que les tables, les vues et les noms de colonne, se voient attribuer le classement par défaut de la base de données.

    Par exemple, deux tables dont les noms ne diffèrent que par la casse peuvent être créées dans une base de données avec un classement sensible à la casse, mais ne peuvent pas être créées dans une base de données avec un classement insensible à la casse. Pour plus d'informations, consultez Identifiants de base de données.

  • Les identifiants des variables , libellés GOTO , procédures stockées temporaires , et tables temporaires sont dans le classement par défaut de l'instance de serveur.

    Des variables, des étiquettes GOTO, des procédures stockées temporaires et des tables temporaires peuvent être créés lorsque le contexte de connexion est associé à une base de données, puis référencés lorsque le contexte a été basculé vers une autre base de données.

Vous pouvez vérifier votre serveur classement à l'aide de :

SELECT SERVERPROPERTY('collation');

SQL_Latin1_General_CP1_CI_AS
(1 row(s) affected)