Ho recentemente installato SQL Server 2008 e ho selezionato le regole di confronto come maiuscole e minuscole. Voglio renderlo case insensitive per l'intera istanza (non per un database in quell'istanza). Se cambio le regole di confronto ha effetto su eventuali database esistenti? se sì in che modo?Modifica delle regole di confronto di SQL Server senza distinzione tra maiuscole e minuscole?
risposta
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:
- MSDN: Setting and changing the server collation
- How to change database or server collation (al centro della pagina)
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')
è 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.
- 1. Confronto tra maiuscole e minuscole in SQL Server
- 2. Elenco senza distinzione tra maiuscole e minuscole
- 3. Aggiungi regole di confronto senza distinzione tra maiuscole e minuscole a PostgreSQL
- 4. Corrispondenza delle maiuscole senza distinzione tra maiuscole e minuscole
- 5. AngularJs, senza distinzione tra maiuscole e minuscole
- 6. Corrispondenza di SQL Server per corrispondere a Java senza distinzione tra maiuscole e minuscole. Confronta
- 7. GetMethod senza distinzione tra maiuscole e minuscole?
- 8. Colonne stringa senza distinzione tra maiuscole e minuscole in SQLAlchemy?
- 9. PHP in -array senza distinzione tra maiuscole e minuscole
- 10. Ricerca chiave senza distinzione tra maiuscole e minuscole di MemoryCache
- 11. OData e distinzione tra maiuscole e minuscole
- 12. Automapper - voglio distinzione tra maiuscole e minuscole
- 13. JPA2: senza distinzione tra maiuscole e minuscole come l'abbinamento ovunque
- 14. ORACLE 11g senza distinzione tra maiuscole e minuscole per default
- 15. Ricerca senza distinzione tra maiuscole e minuscole in Mongo
- 16. MySQL senza distinzione tra maiuscole e minuscole DISTINCT
- 17. È possibile deserializzare GSON senza distinzione tra maiuscole e minuscole.
- 18. Come sostituire una stringa senza distinzione tra maiuscole e minuscole
- 19. Perché SQL Server "=" non è sensibile alla distinzione tra maiuscole e minuscole?
- 20. Colonna univoca di SQL Server 2008 con distinzione maiuscole/minuscole
- 21. Underscore.js Ordinamento senza distinzione tra maiuscole e minuscole
- 22. Corrispondenza senza distinzione tra maiuscole e minuscole in Marpa
- 23. Ricerca elenco senza distinzione tra maiuscole e minuscole
- 24. Set Matcher Bootstrap Typeahead senza distinzione tra maiuscole e minuscole
- 25. PHP: parametri senza distinzione tra maiuscole e minuscole
- 26. Come utilizzare PHP strpos senza distinzione tra maiuscole e minuscole?
- 27. Elenco filtri Jquery senza distinzione tra maiuscole e minuscole
- 28. javascript: ignorando la distinzione tra maiuscole e minuscole delle stringhe
- 29. Confronto tra stringhe senza distinzione tra maiuscole e minuscole in Slick?
- 30. Doctrine LIKE senza distinzione tra maiuscole e minuscole
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