Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Variabili con distinzione tra maiuscole e minuscole in SQL Server

È necessario modificare le regole di confronto del server impostando la distinzione tra maiuscole e minuscole per ottenere il comportamento desiderato. Non basta semplicemente cambiare le regole di confronto per il db.

Le regole di confronto predefinite di un'installazione di SQL Server, SQL_Latin1_General_CP1_CI_AS non fa distinzione tra maiuscole e minuscole.

Sembra che tu voglia modificare le regole di confronto del tuo server a uno che non fa distinzione tra maiuscole e minuscole. Scegline uno con _CS . Il _CI significa "senza distinzione tra maiuscole e minuscole ", e la distinzione tra maiuscole e minuscole è _CS . Forse vorrai Latin1_General_CS_AS .

Questa è un'ottima risposta a una domanda precedente sulla modifica delle regole di confronto di SQL Server in maiuscole e minuscole da maiuscole e minuscole?.

Dalla documentazione in linea di SQL Server:

COLLATE (Transact-SQL)

Le regole di confronto di un identificatore dipendono dal livello a cui è definito.

  • Agli identificatori di oggetti a livello di istanza, come accessi e nomi di database, vengono assegnate le regole di confronto predefinite dell'istanza.
  • Agli identificatori di oggetti all'interno di un database, come tabelle, viste e nomi di colonne, vengono assegnate le regole di confronto predefinite del database.

    Ad esempio, due tabelle con nomi diversi solo in caso di maiuscole e minuscole possono essere create in un database con regole di confronto con distinzione tra maiuscole e minuscole, ma non possono essere create in un database con regole di confronto senza distinzione tra maiuscole e minuscole. Per ulteriori informazioni, consulta Identificatori di database.

  • Gli identificatori per le variabili , Etichette GOTO , procedure archiviate temporanee e tabelle temporanee sono nelle regole di confronto predefinite dell'istanza del server.

    È possibile creare variabili, etichette GOTO, stored procedure temporanee e tabelle temporanee quando il contesto di connessione è associato a un database e quindi fare riferimento quando il contesto è passato a un altro database.

Puoi controllare il tuo server confronto utilizzando:

SELECT SERVERPROPERTY('collation');

SQL_Latin1_General_CP1_CI_AS
(1 row(s) affected)