Come posso determinare le regole di confronto di un database in SQL 2005?
Domanda
Come si determinano le regole di confronto di un database in SQL 2005, ad esempio se è necessario eseguire una ricerca / sostituzione senza distinzione tra maiuscole e minuscole?
Soluzione 3
Utilizza il seguente SQL determina le regole di confronto di un database:
SELECT DATABASEPROPERTYEX('{database name}', 'Collation') SQLCollation;
Altri suggerimenti
Ricorda che le singole colonne possono sovrascrivere le regole di confronto del database:
SELECT TABLE_NAME, COLUMN_NAME, COLLATION_NAME
FROM INFORMATION_SCHEMA.COLUMNS
Seleziona il Database ed esegui il seguente comando.
sp_helpsort
Se si desidera eseguire una ricerca senza distinzione tra maiuscole e minuscole e non è possibile fare affidamento sulle regole di confronto del database, è sempre possibile richiederlo in modo specifico per la query a cui si è interessati. Ad esempio:
SELECT TOP 1 FName, *
FROM People
WHERE FName LIKE '%mich%' COLLATE Latin1_General_CI_AI
Di solito ho il problema opposto, dove voglio la distinzione tra maiuscole e minuscole ma non ce l'ho nelle regole di confronto del database, quindi mi ritrovo a usare un po 'le regole di confronto Latin1_General_BIN nelle mie query. Se non lo sai già, puoi fare:
SELECT
FROM ::fn_helpcollations()
per un elenco delle regole di confronto disponibili e le descrizioni di cosa servono.