Impostare o modificare le regole di confronto del databaseSet or Change the Database Collation

In questo argomento viene descritto come impostare e modificare le regole di confronto del database in SQL Server 2017SQL Server 2017 utilizzando SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how set and change the database collation in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. Se non viene specificata alcuna regola di confronto, vengono utilizzate le regole di confronto del server.If no collation is specified, the server collation is used.

Contenuto dell'argomentoIn This Topic

Prima di iniziare Before You Begin

Limitazioni e restrizioni Limitations and Restrictions

  • Le regole di confronto solo Unicode di Windows possono essere usate solo con la clausola COLLATE per essere applicate ai tipi di dati nchar, nvarchare ntext per i dati a livello di colonna e di espressione.Windows Unicode-only collations can only be used with the COLLATE clause to apply collations to the nchar, nvarchar, and ntext data types on column level and expression-level data. Non è possibile utilizzarle con la clausola COLLATE per modificare le regole di confronto di un database o un'istanza del server.They cannot be used with the COLLATE clause to change the collation of a database or server instance.

  • Se le regole di confronto specificate o adottate dall'oggetto cui viene fatto riferimento utilizzano una tabella codici non supportata dai sistemi operativi Windows, nel Motore di databaseDatabase Engine viene visualizzato un errore.If the specified collation or the collation used by the referenced object uses a code page that is not supported by Windows, the Motore di databaseDatabase Engine displays an error.

Indicazioni Recommendations

  • È possibile trovare i nomi delle regole di confronto supportate in Windows_collation_name (Transact-SQL) e Nome delle regole di confronto di SQL Server (Transact-SQL); oppure è possibile usare la funzione di sistema sys.fn_helpcollations (Transact-SQL) .You can find the supported collation names in Windows Collation Name (Transact-SQL) and SQL Server Collation Name (Transact-SQL); or you can use the sys.fn_helpcollations (Transact-SQL) system function.

  • Quando si modificano le regole di confronto del database, è possibile modificare gli elementi seguenti:When you change the database collation, you change the following:

    • Qualsiasi char, varchar, text, nchar, nvarcharo colonna ntext nelle tabelle di sistema viene impostata sulle nuove regole di confronto.Any char, varchar, text, nchar, nvarchar, or ntext columns in system tables are changed to the new collation.

    • Tutti i parametri esistenti di tipo char, varchar, text, nchar, nvarcharo ntext , i valori scalari restituiti per le stored procedure e le funzioni definite dall'utente vengono modificati in base alle nuove regole di confronto.All existing char, varchar, text, nchar, nvarchar, or ntext parameters and scalar return values for stored procedures and user-defined functions are changed to the new collation.

    • I tipi di dati di sistema char, varchar, text, nchar, nvarcharo ntext e tutti i tipi di dati definiti dall'utente basati su tali tipi di dati di sistema vengono modificati in base alle nuove regole di confronto predefinite.The char, varchar, text, nchar, nvarchar, or ntext system data types, and all user-defined data types based on these system data types, are changed to the new default collation.

  • È possibile modificare le regole di confronto di qualsiasi nuovo oggetto creato in un database utente utilizzando la clausola COLLATE dell'istruzione ALTER DATABASE .You can change the collation of any new objects that are created in a user database by using the COLLATE clause of the ALTER DATABASE statement. Questa istruzione non consente di modificare le regole di confronto delle colonne delle tabelle definite dall'utente esistenti.This statement does not change the collation of the columns in any existing user-defined tables. Per modificare le regole di confronto delle colonne, è necessario utilizzare la clausola COLLATE dell'istruzione ALTER TABLE.These can be changed by using the COLLATE clause of ALTER TABLE.

Sicurezza Security

Autorizzazioni Permissions

CREATE DATABASECREATE DATABASE
È richiesta l'autorizzazione CREATE DATABASE per il database master oppure l'autorizzazione CREATE ANY DATABASE o ALTER ANY DATABASE.Requires CREATE DATABASE permission in the master database, or requires CREATE ANY DATABASE, or ALTER ANY DATABASE permission.

ALTER DATABASEALTER DATABASE
È richiesta l'autorizzazione ALTER per il database.Requires ALTER permission on the database.

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Per impostare o modificare le regole di confronto del databaseTo set or change the database collation

  1. In Esplora oggetticonnettersi a un'istanza di Motore di database di SQL ServerSQL Server Database Engine, espandere tale istanza, quindi espandere Database.In Object Explorer, connect to an instance of the Motore di database di SQL ServerSQL Server Database Engine, expand that instance, and then expand Databases.

  2. Se si crea un nuovo database, fare clic con il pulsante destro del mouse su Database , quindi fare clic su Nuovo database.If you are creating a new database, right-click Databases and then click New Database. Se non si vuole usare le regole di confronto predefinite, fare clic sulla pagina Opzioni e selezionare le regole di confronto dall'elenco a discesa Regole di confronto .If you do not want the default collation, click the Options page, and select a collation from the Collation drop-down list.

    In alternativa, se il database esiste già, fare clic con il pulsante destro del mouse sul database desiderato e fare clic su Proprietà.Alternatively, if the database already exists, right-click the database that you want and click Properties. Fare clic sulla pagina Opzioni e selezionare le regole di confronto dall'elenco a discesa Regole di confronto .Click the Options page, and select a collation from the Collation drop-down list.

  3. Al termine dell'operazione scegliere OK.After you are finished, click OK.

Utilizzo di Transact-SQL Using Transact-SQL

Per impostare le regole di confronto del databaseTo set the database collation

  1. Connettersi al Motore di databaseDatabase Engine.Connect to the Motore di databaseDatabase Engine.

  2. Dalla barra Standard fare clic su Nuova query.From the Standard bar, click New Query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.Copy and paste the following example into the query window and click Execute. In questo esempio viene mostrato come utilizzare la clausola COLLATE per specificare un nome delle regole di confronto.This example shows how to use the COLLATE clause to specify a collation name. Nell'esempio viene creato l'elemento MyOptionsTest del database che utilizza le regole di confronto Latin1_General_100_CS_AS_SC .The example creates the database MyOptionsTest that uses the Latin1_General_100_CS_AS_SC collation. Dopo aver creato il database, eseguire l'istruzione SELECT per verificare l'impostazione.After you create the database, execute the SELECT statement to verify the setting.

USE master;  
GO  
IF DB_ID (N'MyOptionsTest') IS NOT NULL  
DROP DATABASE MyOptionsTest;  
GO  
CREATE DATABASE MyOptionsTest  
COLLATE Latin1_General_100_CS_AS_SC;  
GO  

--Verify the collation setting.  
SELECT name, collation_name  
FROM sys.databases  
WHERE name = N'MyOptionsTest';  
GO  

Per modificare le regole di confronto del databaseTo change the database collation

  1. Connettersi al Motore di databaseDatabase Engine.Connect to the Motore di databaseDatabase Engine.

  2. Dalla barra Standard fare clic su Nuova query.From the Standard bar, click New Query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.Copy and paste the following example into the query window and click Execute. In questo esempio viene mostrato come utilizzare la clausola COLLATE in un'istruzione ALTER DATABASE per modificare il nome delle regole di confronto.This example shows how to use the COLLATE clause in an ALTER DATABASE statement to change the collation name. Eseguire l'istruzione SELECT per verificare la modifica.Execute the SELECT statement to verify the change.

USE master;  
GO  
ALTER DATABASE MyOptionsTest  
COLLATE French_CI_AS ;  
GO  

--Verify the collation setting.  
SELECT name, collation_name  
FROM sys.databases  
WHERE name = N'MyOptionsTest';  
GO  

Vedere ancheSee Also

Regole di confronto e supporto Unicode Collation and Unicode Support
sys.fn_helpcollations (Transact-SQL) sys.fn_helpcollations (Transact-SQL)
sys.databases (Transact-SQL) sys.databases (Transact-SQL)
Nome delle regole di confronto di SQL Server (Transact-SQL) SQL Server Collation Name (Transact-SQL)
Windows_collation_name (Transact-SQL) Windows Collation Name (Transact-SQL)
COLLATE (Transact-SQL) COLLATE (Transact-SQL)
Precedenza delle regole di confronto (Transact-SQL) Collation Precedence (Transact-SQL)
CREATE TABLE (Transact-SQL) CREATE TABLE (Transact-SQL)
CREATE DATABASE (SQL Server Transact-SQL) CREATE DATABASE (SQL Server Transact-SQL)
ALTER TABLE (Transact-SQL) ALTER TABLE (Transact-SQL)
ALTER DATABASE (Transact-SQL)ALTER DATABASE (Transact-SQL)