Come utilizzare il comando SQL Server Collate

Come utilizzare il comando SQL Server Collate
Questa guida coprirà i fondamenti del lavoro con SQL Server Collate Command. Prima di arrivarci, cos'è una raccolta di server SQL?

Cos'è la raccolta SQL Server?

La raccolta di SQL Server si riferisce a una serie di regole che regolano come ordinare e confrontare i dati dei caratteri in un database. SQL Server fornisce una vasta gamma di collegamenti per la gestione dei dati dei caratteri. Queste collezioni possono gestire i dati con linguaggi e regioni contrastanti, consentendo a un database di essere compatibile con le applicazioni in tutto il mondo.

Livelli di raccolta del server SQL

Nel server SQL, ci sono tre livelli principali in cui è possibile definire le relazioni:

  1. Livello di istanza del server SQL
  2. Livello di database
  3. Livello della colonna

Si noti che un nome di raccolta può essere una raccolta di Windows o un nome di raccolta fornito dal server SQL.

È possibile specificare il tipo di raccolta durante la creazione di un database. Se non specificato durante la creazione di un database, SQL Server sarà impostata predefinita alla raccolta utilizzata dall'istanza SQL Server.

Allo stesso modo, se non si definisce la raccolta durante la creazione di una colonna, SQL Server sarà impostata predefinita alla raccolta utilizzata in quel database.

Livello di istanza del server SQL

Puoi impostare la tua raccolta preferita per l'istanza di SQL Server durante l'installazione. Se hai già installato il server SQL, è possibile utilizzare la procedura guidata del centro di installazione per ridefinire il tipo di raccolta.

Per visualizzare la raccolta corrente per l'istanza di SQL Server, aprire SQL Server Management Studio.

Fare clic con il tasto destro del mouse sull'istanza del server SQL e selezionare l'opzione Proprietà:

Nella finestra Proprietà, selezionare la scheda Generale nel menu a sinistra. Ciò mostrerà le informazioni generali sull'istanza del tuo server SQL, incluso il tipo di raccolta predefinita:

Nel nostro esempio, la raccolta predefinita è impostata su sql_latin1_general_cp1_c1_as. Questa è una raccolta SQL Server piuttosto che una raccolta di Windows, come indicato dal prefisso SQL_.

L'altra parte contiene il nome della raccolta, in questo caso, latin1_general_cp_as. Il valore CI indica che la raccolta è insensibile al caso, mentre come mezzo è sensibile all'accento.

Per ottenere una descrizione più dettagliata della raccolta predefinita SQL Server, utilizzare la procedura SP_Helpsort come mostrato:

EXEC SP_HELPSORT;

La procedura dovrebbe restituire le informazioni come mostrato:

COLLAZIONE PREFATURA SERVER
-----------------------------------------------------------------------------------------------------------------
Latin1-generale, insensibile al caso, sensibile all'accento, insensibile al kanatype, insensibile alla larghezza per i dati Unicode, Ordine SQL Server Server 52 sul codice Pagina 1252 per dati non unicode

Raccolta a livello di database

Possiamo definire la raccolta a livello di database. Come accennato, se non esplicitamente specificato, un database erediterà la raccolta dell'istanza del server SQL.

Per visualizzare la raccolta di un database in SQL Server Management Studio (SSMS), fare clic con il tasto destro del mouse sul database di destinazione e aprire la finestra Proprietà:

Nella finestra Proprietà, selezionare la scheda Generale e passare alla sezione di manutenzione. Dovresti vedere la raccolta del database elencato:

Nel nostro caso, il database eredita la stessa raccolta dell'istanza SQL Server.

Imposta la raccolta del database
Per impostare la raccolta desiderata durante la creazione del database, è possibile utilizzare la query come mostrato di seguito:

Crea database sample_database
Collegare sql_latin1_general_cp1_cs_as;

Nella query sopra, creiamo un database con la raccolta sql_latin1_general_cp1_cs_as. È simile a SQL_LATIN1_GENERAL_CI_AI, tranne che è sensibile al caso e all'accento, come indicato da CS e come nel nome della raccolta:

Imposta la raccolta in un database esistente
SQL Server consente di modificare la raccolta dopo la creazione utilizzando il comando alter database.

Ad esempio, la seguente query modifica la raccolta del database da sql_latin1_general_cp1_cs_as a sql_slovak_cp1250_cs_as:

Utilizzare sample_database;
ALTER Database Sample_Database raccolto sql_slovak_cp1250_cs_as;

Prima di modificare la raccolta del database, assicurarsi che tutte le connessioni al database siano chiuse. Altrimenti, la query fallirà.

SQL Server mostra i collegamenti supportati
Per visualizzare i collegamenti supportati per la versione SQL Server, utilizzare la query come mostrato di seguito:

Seleziona Nome, Descrizione da SYS.fn_helpcollations ();

Se stai utilizzando SQL Server 2019, abbiamo fornito un elenco dei COLLAZIONI SUPPORT. Scarica il file nella risorsa di seguito:

Coltura a livello di colonna

Nella maggior parte dei casi, vorrai che una colonna di caratteri erediti una raccolta simile al database. Tuttavia, è possibile specificare esplicitamente la raccolta per una colonna.

Tieni presente che è possibile definire una colonna COLLAZIONE solo se la colonna è di tipo char come:

  1. Varchar
  2. Nvarchar
  3. CHAR
  4. Ntext
  5. TESTO

Per impostare una colonna usando T-SQL, utilizzare la query di esempio come mostrato:

Crea informazioni sulla tabella (
id int,
TEXT_ VARCHAR (50) COLLATE SQL_EBCDIC280_CP1_CS_AS
);

Per visualizzare la raccolta di una colonna, è possibile utilizzare la procedura SP_HELP come mostrato di seguito:

Exec SP_HELP Info;

Il comando dovrebbe restituire informazioni sulla colonna, inclusa la raccolta come:

Conclusione

In questo articolo, abbiamo esplorato il concetto di collezioni di server SQL, cosa sono e come possiamo visualizzare o cambiare i collegamenti a vari livelli, come il livello di istanza del server SQL, il livello di database e il livello di colonna. Speriamo che tu abbia trovato questo articolo utile. Dai un'occhiata agli altri articoli di suggerimento Linux per ulteriori suggerimenti e tutorial.