Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wird beim LIKE-Operator mit MSSQL Server zwischen Groß- und Kleinschreibung unterschieden?

Es ist nicht der Operator, der zwischen Groß- und Kleinschreibung unterscheidet, sondern die Spalte selbst.

Wenn eine SQL Server-Installation durchgeführt wird, wird eine Standardsortierung für die Instanz ausgewählt. Sofern nicht ausdrücklich anders angegeben (überprüfen Sie die collate-Klausel unten), erbt sie beim Erstellen einer neuen Datenbank die Sortierung von der Instanz, und wenn eine neue Spalte erstellt wird, erbt sie die Sortierung von der Datenbank, zu der sie gehört.

Eine Sortierung wie sql_latin1_general_cp1_ci_as bestimmt, wie der Inhalt der Spalte behandelt werden soll. CI steht für Groß- und Kleinschreibung und AS steht für Akzentsensitivität.

Eine vollständige Liste der Sortierungen finden Sie unter https://msdn.microsoft.com/en-us/library/ms144250(v=sql.105).aspx

(a) So prüfen Sie eine Instanzsortierung

select serverproperty('collation')

(b) Um eine Datenbankkollation zu prüfen

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

(c) So erstellen Sie eine Datenbank mit einer anderen Sortierung

create database exampledatabase
collate sql_latin1_general_cp1_cs_as 

(d) So erstellen Sie eine Spalte mit einer anderen Sortierung

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

(e) So ändern Sie eine Spaltensortierung

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

Es ist möglich, eine Instanz und Datenbanksortierungen zu ändern, aber es wirkt sich nicht auf zuvor erstellte Objekte aus.

Es ist auch möglich, eine Spaltensortierung für den Zeichenfolgenvergleich spontan zu ändern, aber dies wird in einer Produktionsumgebung nicht empfohlen, da es extrem kostspielig ist.

select
  column1 collate sql_latin1_general_cp1_ci_as as column1
from table1