2010-07-21 9 views

risposta

47

Fondamentalmente è necessario eseguire nuovamente l'installazione per ricostruire il database master con le nuove regole di confronto. Non è possibile modificare le regole di confronto dell'intero server in altro modo.

See:

Update: se si desidera modificare le regole di confronto di un database, è possibile ottenere il confronto corrente con questo snippet di T-SQL:

SELECT name, collation_name 
FROM sys.databases 
WHERE name = 'test2' -- put your database name here 

Questo produrrà un valore di qualcosa come: "case insensitive"

Latin1_General_CI_AS 

I _CI mezzi - se si vuole tra maiuscole e minuscole, utilizzare _CS al suo posto:

Latin1_General_CS_AS 

Così il vostro T- comando SQL sarebbe:

ALTER DATABASE test2 -- put your database name here 
    COLLATE Latin1_General_CS_AS -- replace with whatever collation you need 

È possibile ottenere un elenco di tutte le regole di confronto disponibili sul server utilizzando:

SELECT * FROM ::fn_helpcollations() 

Si può vedere corrente collazione del server utilizzando:

SELECT SERVERPROPERTY ('Collation') 
+0

Ok, grazie per l'informazione. Ora almeno voglio provare a cambiare le regole di confronto del database per renderlo insensibile alle maiuscole/minuscole. Ho trovato questo 'ALTER DATABASE DEV_DB COLLATE [chiave senza distinzione tra maiuscole e minuscole] per lo stesso. Ma non sono sicuro del valore da utilizzare per la distinzione tra maiuscole e minuscole. Qualsiasi aiuto in questo è apprezzabile! – JPReddy

2

è possibile farlo, ma i cambiamenti influenzeranno per i nuovi dati che vengono inseriti nel database. A lungo andare seguire come suggerito sopra.

Inoltre ci sono alcuni trucchi che è possibile ignorare le regole di confronto, ad esempio i parametri per stored procedure o funzioni, i tipi di dati alias e le variabili vengono assegnate le regole di confronto predefinite del database. Per modificare le regole di confronto di un tipo di alias, devi eliminare l'alias e ricrearlo.

È possibile sovrascrivere le regole di confronto predefinite di una stringa letterale utilizzando la clausola COLLATE. Se non si specifica una regola di confronto, al valore letterale vengono assegnate le regole di confronto predefinite del database. È possibile utilizzare DATABASEPROPERTYEX per trovare le regole di confronto correnti del database.

È possibile eseguire l'override del confronto del server, del database o della colonna specificando una regola di confronto nella clausola ORDER BY di un'istruzione SELECT.

Problemi correlati