Condividi tramite


Impostare o modificare le regole di confronto del database

Questo argomento descrive come impostare e modificare le regole di confronto del database in SQL Server 2014 usando SQL Server Management Studio o Transact-SQL. Se non viene specificata alcuna regola di confronto, vengono utilizzate le regole di confronto del server.

Contenuto dell'articolo

Prima di iniziare

Limitazioni e restrizioni

  • Le regole di confronto solo Unicode di Windows possono essere utilizzate solo con la clausola COLLATE per essere applicate ai tipi di dati nchar, nvarchar e ntext per i dati a livello di colonna e di espressione. Non è possibile utilizzarle con la clausola COLLATE per modificare le regole di confronto di un database o un'istanza del server.

  • Se le regole di confronto specificate o le regole di confronto utilizzate dall'oggetto a cui si fa riferimento utilizzano una tabella codici non supportata da Windows, il motore di database visualizza un errore.

Consigli

  • È possibile trovare i nomi delle regole di confronto supportate in Nome delle regole di confronto di Windows (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).

  • Quando si modificano le regole di confronto del database, è possibile modificare gli elementi seguenti:

    • Qualsiasi char, varchar, text, nchar, nvarchar o colonna ntext nelle tabelle di sistema viene impostata sulle nuove regole di confronto.

    • Tutti i parametri di tipo char, varchar, text, nchar, nvarchar o ntext e i valori scalari restituiti per le stored procedure e le funzioni definite dall'utente vengono modificati in base alle nuove regole di confronto.

    • I tipi di dati di sistema char, varchar, text, nchar, nvarchar o ntext e tutti i tipi di dati definiti dall'utente basati sui questi tipi di dati di sistema vengono modificati in base alle nuove regole di confronto predefinite.

  • È possibile modificare le regole di confronto di qualsiasi nuovo oggetto creato in un database utente utilizzando la clausola COLLATE dell'istruzione ALTER DATABASE . Questa istruzione non consente di modificare le regole di confronto delle colonne delle tabelle definite dall'utente esistenti. Per modificare le regole di confronto delle colonne, è necessario utilizzare la clausola COLLATE dell'istruzione ALTER TABLE.

Sicurezza

Autorizzazioni

CREATE DATABASE
È necessaria l'autorizzazione CREATE DATABASE nel database master oppure è necessaria l'autorizzazione CREATE ANY DATABASE o ALTER ANY DATABASE.

ALTER DATABASE
È richiesta l'autorizzazione ALTER per il database.

Uso di SQL Server Management Studio

Per impostare o modificare le regole di confronto del database

  1. In Esplora oggetti, connettersi a un'istanza del motore di database di SQL Server, espanderla e quindi espandere Database.

  2. Se si crea un nuovo database, fare clic con il pulsante destro del mouse su Database , quindi fare clic su Nuovo 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 .

    In alternativa, se il database esiste già, fare clic con il pulsante destro del mouse sul database desiderato e fare clic su Proprietà. Fare clic sulla pagina Opzioni e selezionare le regole di confronto dall'elenco a discesa Regole di confronto .

  3. Al termine dell'operazione scegliere OK.

Uso di Transact-SQL

Per impostare le regole di confronto del database

  1. Connettersi al motore di database.

  2. Dalla barra Standard fare clic su Nuova query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui. In questo esempio viene mostrato come utilizzare la clausola COLLATE per specificare un nome delle regole di confronto. Nell'esempio viene creato l'elemento MyOptionsTest del database che utilizza le regole di confronto Latin1_General_100_CS_AS_SC . Dopo aver creato il database, eseguire l'istruzione SELECT per verificare l'impostazione.

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 database

  1. Connettersi al motore di database.

  2. Dalla barra Standard fare clic su Nuova query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui. In questo esempio viene mostrato come utilizzare la clausola COLLATE in un'istruzione ALTER DATABASE per modificare il nome delle regole di confronto. Eseguire l'istruzione SELECT per verificare la modifica.

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 anche

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