SQL Server comme opérateur: Sensibilité à la casse expliquée
L'opérateur SQL Server LIKE
fournit une correspondance de chaînes robuste. Cependant, sa sensibilité aux cas n'est pas inhérente à l'opérateur lui-même. Au lieu de cela, il est déterminé par la collation de la colonne.
Collation: la clé de la sensibilité à la caisse
La collation d'une colonne dicte la façon dont les comparaisons de caractères sont gérées. SQL Server prend en charge diverses collations, chacune spécifiant le jeu de caractères, l'alphabet et, surtout, les règles de sensibilité de cas.
Déterminer la collation
pour vérifier la collation d'une base de données:
<code class="language-sql">SELECT DATABASEPROPERTYEX('databasename', 'collation') AS SQLCollation;</code>
pour une colonne spécifique:
<code class="language-sql">SELECT COLLATION_NAME FROM sys.columns WHERE object_id = OBJECT_ID('TableName') AND name = 'ColumnName';</code>
L'impact de la collation sur les résultats similaires
différentes collations produisent des résultats différents LIKE
. Par exemple:
sql_latin1_general_cp1_ci_as
: insensible à la casse, sensible à l'accent. sql_latin1_general_cp1_cs_as
: sensible à la casse, sensible à l'accent. Modification de la collation (utilisez avec prudence)
Bien que généralement découragé, vous pouvez modifier la collation d'une colonne:
<code class="language-sql">ALTER TABLE TableName ALTER COLUMN ColumnName VARCHAR(10) COLLATE new_collation;</code>
Alternativement, vous pouvez temporairement remplacer la sensibilité des cas dans une requête (non recommandée pour la production):
<code class="language-sql">SELECT column1 COLLATE sql_latin1_general_cp1_ci_as AS column1 FROM table1;</code>
en résumé
Correspondance de chaîne précise avec l'opérateur LIKE
de SQL Server dépend de la compréhension de l'impact de la collation. Une sélection minutieuse de collation garantit que les requêtes se comportent comme prévu, quelles que soient les exigences de sensibilité aux cas.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!