Impostare o modificare le regole di confronto del database

In questo argomento viene descritto come impostare e modificare le regole di confronto del database in SQL Server 2012 utilizzando 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'argomento

  • Prima di iniziare:

    Limitazioni e restrizioni

    Consigli

    Sicurezza

  • Per impostare o modificare le regole di confronto del database utilizzando:

    SQL Server Management Studio

    Transact-SQL

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 adottate dall'oggetto cui viene fatto riferimento utilizzano una tabella codici non supportata dai sistemi operativi Windows, nel Motore di database viene visualizzato un errore.

Consigli

  • È 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) o è possibile utilizzare 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
    È richiesta l'autorizzazione CREATE DATABASE per il database master oppure l'autorizzazione CREATE ANY DATABASE o ALTER ANY DATABASE.

  • ALTER DATABASE
    È necessaria l'autorizzazione ALTER per il database.

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]

Utilizzo di SQL Server Management Studio

Per impostare o modificare le regole di confronto del database

  1. In Esplora oggetti connettersi a un'istanza di Motore di database di SQL Server, espandere tale istanza, quindi espandere Database.

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

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]

Utilizzo 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 e 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 e 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

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]

Vedere anche

Riferimento

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)

ALTER TABLE (Transact-SQL)

ALTER DATABASE (Transact-SQL)

Concetti

Regole di confronto e supporto Unicode