2009-04-30 2 views

risposta

16

ALTER TABLE ALTER COLUMN permette di cambiare le regole di confronto per una singola colonna:

alter table Foo alter column Bar ntext collate Latin1_General_CS_AS 

(collazione potrebbe non essere corretto)

+0

Una nota sulle regole di confronto: ho dovuto scrivere troppi COLLATE dichiarazioni a causa di una tabella di origine di essere Latin1_General_CS_AS e uno è Latin1_General_CI_AI. Questo si applica solo se si utilizza SSIS per spostare i dati, o almeno, questo è l'unico punto in cui abbia mai riscontrato un problema. – Eric

+0

http://www.codefari.com/2015/09/case-sensitive-search -on-column-in-sql.html segui il link per saperne di più sulla ricerca case sensitive – Singh

2

Non lo so specificamente SQL Server, ma la pratica DBMS generalmente accettata (per la compatibilità) sarebbero a uno:

  • put di inserimento e aggiornamento trigger sul tavolo in modo che questi sono memorizzati nella il caso che vuoi
  • utilizza colonne generate per memorizzare un'altra copia della colonna nel caso desiderato.

Potrebbe esserci un modo più rapido per farlo in SQL Server, ma è necessario fare attenzione alle soluzioni che spingono il carico di lavoro nelle istruzioni SELECT, che non hanno mai una scalabilità ottimale. È quasi sempre meglio farlo come parte degli inserti e degli aggiornamenti dato che è l'unica volta in cui i dati cambiano, in questo modo si riduce al minimo il carico di lavoro extra.