sql >> Database >  >> RDS >> Sqlserver

Is de LIKE-operator hoofdlettergevoelig met MSSQL Server?

Het is niet de operator die hoofdlettergevoelig is, het is de kolom zelf.

Wanneer een SQL Server-installatie wordt uitgevoerd, wordt een standaardsortering voor de instantie gekozen. Tenzij expliciet anders vermeld (controleer de sorteerclausule hieronder) wanneer een nieuwe database wordt gemaakt, erft deze de sortering van de instantie en wanneer een nieuwe kolom wordt gemaakt, erft deze de sortering van de database waartoe deze behoort.

Een sortering zoals sql_latin1_general_cp1_ci_as bepaalt hoe de inhoud van de kolom moet worden behandeld. CI staat voor hoofdlettergevoelig en AS staat voor accentgevoelig.

Een volledige lijst met sorteringen is beschikbaar op https://msdn.microsoft.com/en-us/library/ms144250(v=sql.105).aspx

(a) Een instantiesortering controleren

select serverproperty('collation')

(b) Een databasesortering controleren

select databasepropertyex('databasename', 'collation') sqlcollation

(c) Een database maken met een andere sortering

create database exampledatabase
collate sql_latin1_general_cp1_cs_as 

(d) Een kolom maken met een andere sortering

create table exampletable (
    examplecolumn varchar(10) collate sql_latin1_general_cp1_ci_as null
)

(e) Een kolomsortering wijzigen

alter table exampletable
alter column examplecolumn varchar(10) collate sql_latin1_general_cp1_ci_as null

Het is mogelijk om een ​​exemplaar en databasesorteringen te wijzigen, maar dit heeft geen invloed op eerder gemaakte objecten.

Het is ook mogelijk om een ​​kolomsortering on-the-fly te wijzigen voor het vergelijken van strings, maar dit wordt ten zeerste afgeraden in een productieomgeving omdat het extreem duur is.

select
  column1 collate sql_latin1_general_cp1_ci_as as column1
from table1


  1. ODP.NET beheerd - Kan de gevraagde .Net Framework-gegevensprovider niet vinden

  2. Zoek de partitioneringskolom voor een gepartitioneerde tabel in SQL Server (T-SQL)

  3. Relaties van modellen (Laravel 5.2)

  4. Hoe kan ik de functie gebruiken in mijn mysql-query?