Impostare o modificare le regole di confronto del server

Si applica a: sìSQL Server (tutte le versioni supportate) SìIstanza gestita di SQL di Azure

Le regole di confronto del server costituiscono le regole di confronto predefinite per tutti i database di sistema installati con l'istanza di SQL Servere per ogni database utente creato successivamente.

È necessario considerare attentamente le regole di confronto a livello di server, perché possono influire su:

  • Regole di ordinamento e confronto in =, JOIN, ORDER BY e in altri operatori di confronto dei dati testuali.
  • Regole di confronto delle colonne CHAR, VARCHAR, NCHAR e NVARCHAR di viste di sistema, funzioni di sistema e oggetti in TempDB (ad esempio, tabelle temporanee).
  • Nomi di variabili, cursori ed etichette GOTO. Le variabili @pi e @PI vengono considerate variabili diverse se le regole di confronto a livello di server fanno distinzione tra maiuscole e minuscole, ma vengono considerate la stessa variabile se le regole di confronto a livello di server non fanno questa distinzione.

Regole di confronto del server in SQL Server

Le regole di confronto del server vengono specificate durante l'installazione di SQL Server . Le regole di confronto predefinite a livello di server sono basate sulle impostazioni locali del sistema operativo.

Ad esempio, le regole di confronto predefinite per i sistemi che usano l'inglese degli Stati Uniti (en-US) sono SQL_Latin1_General_CP1_CI_AS. Per altre informazioni, incluso l'elenco delle impostazioni locali del sistema operativo per i mapping delle regole di confronto predefinite, vedere la sezione "Regole di confronto a livello di server" in Supporto Unicode e delle regole di confronto.

Nota

Le regole di confronto a livello di server per SQL Server Express LocalDB sono SQL_Latin1_General_CP1_CI_AS e non possono essere modificate durante o dopo l'installazione.

Modificare le regole di confronto del server in SQL Server

La modifica delle regole di confronto predefinite per un'istanza di SQL Server può essere un'operazione complessa.

Nota

Anziché modificare le regole di confronto predefinite di un'istanza di SQL Server, è possibile specificare regole di confronto predefinite per ogni nuovo database creato con la clausola COLLATE delle istruzioni CREATE DATABASE e ALTER DATABASE. Per altre informazioni, vedere Set or Change the Database Collation.

La modifica delle regole di confronto dell'istanza prevede i passaggi seguenti:

  • Assicurarsi che siano disponibili tutte le informazioni o gli script necessari per ricreare i database utente e tutti gli oggetti in essi contenuti.

  • Esportare tutti i dati usando uno strumento come l'utilità bcp. Per altre informazioni, vedere Importazione ed esportazione bulk di dati (SQL Server).

  • Eliminare tutti i database utente.

  • Ricompilare master il database specificando le nuove regole di confronto nella proprietà SQLCOLLATION del comando di installazione. Ad esempio:

    Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName
    /SQLSYSADMINACCOUNTS=accounts /[ SAPWD= StrongPassword ]
    /SQLCOLLATION=CollationName  
    

    Per altre informazioni, vedere Ricompilare database di sistema.

  • Creare tutti i database e tutti gli oggetti in essi contenuti.

  • Importare tutti i dati.

Impostazione delle regole di confronto del server in Istanza gestita

È possibile specificare regole di confronto a livello di server in Istanza gestita di database SQL di Azure durante la creazione dell'istanza, ma non è possibile cambiarle in seguito. È possibile impostare regole di confronto a livello di server tramite il portale di Azure o tramite PowerShell e il modello di Resource Manager durante la creazione dell'istanza. Le regole di confronto predefinite corrispondono a SQL_Latin1_General_CP1_CI_AS.

Se si sta eseguendo la migrazione di database da SQL Server a Istanza gestita, controllare le regole di confronto del server nel database SQL Server di origine tramite la funzione SERVERPROPERTY(N'Collation') e creare un'Istanza gestita che corrisponda alle regole di confronto di SQL Server. La migrazione di un database da SQL Server a Istanza gestita con regole di confronto a livello di server non corrispondenti può causare diversi errori imprevisti nell'esecuzione di query. Non è possibile modificare le regole di confronto a livello di server nell'Istanza gestita esistente.

Passaggi successivi