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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top