È possibile modificare le regole di confronto predefinite in base a una colonna? voglio fare il caso 1 colonna sensibile, ma tutti gli altri nonCome rendere una colonna sensibile alle maiuscole in sql 2005 o 2008
risposta
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)
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.
La risposta alla tua domanda è sì, già indicata sopra da Anton Gogolev.
Informazione supplementare:
Ecco una lista come si può trovare di fascicolazione supportate da SQL Server in base alla sua versione.
select name,
COLLATIONPROPERTY(name, 'CodePage') as Code_Page,
description
from sys.fn_HelpCollations()
what is the meaning of Kanatype Sensitive KS and width sensitive
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
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