SQLShack

Questo articolo esplora la configurazione delle regole di confronto del database SQL di Azure e come modificarla durante l’importazione del database da un file BACPAC.

Introduzione

Le regole di confronto si riferiscono a una configurazione che determina il comportamento del motore di database per il set di dati di caratteri a livello di server, database o colonna. SQL Server ha una vasta gamma di regole di confronto per la gestione delle differenze linguistiche in diverse parti del mondo. Fornisce regole di ordinamento, maiuscole e minuscole per i tipi di dati Unicode (nchar, nvarchar o ntext) e non Unicode (char, varchar, nvarchar).

SQL Server supporta le seguenti regole di confronto.

  • Windows
  • Binario: Le regole di confronto binarie terminano sempre con _BIN o _BIN2
  • SQL Server: Questi nomi di confronto iniziano sempre con SQL_

Per un server SQL tradizionale (locale), le impostazioni locali del sistema operativo determinano le regole di confronto predefinite. Tuttavia, è possibile modificare le regole di confronto a livello di server durante l’installazione di SQL Server o la modifica delle impostazioni locali del sistema operativo. Le regole di confronto predefinite di SQL Server sono SQL_Latin1_General_CP1_CI_AS. È possibile comprendere queste regole di confronto in dettaglio facendo riferimento a Regole di confronto e supporto Unicode.

Requisiti

Questo articolo presuppone che si disponga di una conoscenza di base dei database SQL di Azure. Se sei un principiante, è possibile fare riferimento agli articoli esistenti SQL Azure su SQLShack. È possibile utilizzare Microsoft Azure free credit iscrivendosi all’URL https://azure.microsoft.com/en-us/free/

Azure SQL Database Collation

Azure SQL DB è un’offerta PaaS gestita per SQL Server con alcune restrizioni e limitazioni per l’esecuzione di attività specifiche. Come SQL Server locale, Azure DB supporta anche varie regole di confronto. Per ottenere un elenco di regole di confronto supportate per Azure SQL DB, possiamo interrogare il sys.funzione fn_helpcollations (). Restituisce un elenco di 5.508 collazioni. La figura qui sotto ti dà un assaggio delle regole di confronto e descrizioni.

Supportato Regole di confronto lista

Elenco delle regole di confronto supportate

Per Azure SQL DB, è possibile scegliere regole di confronto database nella scheda Impostazioni aggiuntive di creazione di database SQL. Come mostrato di seguito, le regole di confronto predefinite appaiono come SQL_Latin1_General_CP1_CI_AS.

Possiamo abbattere questa raccolta per capirla.

  • SQL – Si riferisce che si tratta di un confronto di SQL Server
  • Latin1_General – Questa parte definisce il carattere di ordinamento regola
  • CI Si riferisce alla distinzione tra maiuscole e minuscole
  • COME – Si definisce accentati

Specificare le regole di confronto durante la creazione del database

Specificare le regole di confronto durante la creazione del database

È possibile fare clic su trova un confronto e cercare le specifiche regole di confronto che si desidera configurare per Azure DB.

È possibile distribuire un database di Azure su un server logico di Azure esistente. Pertanto, se si crea un nuovo database di Azure utilizzando SSMS, è possibile definire una collazione specifica utilizzando la pagina Opzioni.

Verifica regole di confronto in SSMS

Se si crea un DB SQL di Azure utilizzando T-SQL, è possibile utilizzare la parola chiave COLLATE e specificare le regole di confronto DB richieste.

1
2
3

CREARE DATABASE MyDemoSQLDB
COLLATE Latin1_General_100_CS_AS_SC;
VAI

È necessario creare il database nelle regole di confronto corrette. Le query SQL potrebbero non funzionare correttamente a causa della mancata corrispondenza delle regole di confronto. Tuttavia, se è necessario modificare dopo aver creato il database SQL di Azure, non è semplice. Azure SQL DB non supporta la modifica delle regole di confronto utilizzando ALTER DATABASE COLLATE. Si ottiene il seguente messaggio di errore se si tenta di cambiarlo.

1
2
3
4

master
vai
ALTER DATABASE Azuredemodatabase
COLLATE SQL_Latin1_General_CP1250_CI_AS

Modificare le regole di confronto utilizzando la funzione di confronto

  • Nota: non modificare o impostare uno specifico confronto fino a quando si hanno esigenze specifiche. Non farlo mai direttamente su un database di produzione. Testarlo accuratamente su un ambiente DB inferiore e quindi pianificare di procedere per le regole di confronto di produzione

Supponiamo che si stia distribuendo un database SQL di Azure dal file BACPAC locale. Si desidera un confronto diverso nel database di destinazione.

  • Nota: presumo che tu abbia un DB SQL Azure attivo. In caso contrario, è possibile utilizzare un account di livello gratuito per la distribuzione del database di test
  • Per questo articolo demo, faremo le seguenti attività:

    • Esporta il database SQL di Azure in formato BACPAC
    • Installa Microsoft SQL Server Data-Tier Application Framework (18.1)
    • Modifica modello.configurazione file xml
    • Utilizzare sqlpackage.exe per distribuire il database di Azure con regole di confronto aggiornate
    • Verificare le regole di confronto del database

    Passo 1: Esportare il database SQL di Azure in formato BACPAC

    In questo passaggio, esportiamo Azure SQL DB nel formato BACPAC. Possiamo verificare che le regole di confronto esistenti siano SQL_Latin1_General_CP1_CI_AS.

    Verificare le regole di confronto

    Per l’esportazione, fare clic su Azure database e scegliere di Esportare i Dati di Applicazioni di livello…

    Esportare il database di SQL Azure in formato BACPAC

    Esportare il database di SQL Azure in BACPAC formato

    Specificare la directory in cui salvare sul disco locale.

    Salva su disco locale

    Verifica, esporta e monitora l’avanzamento dell’applicazione a livello di dati in formato BACPAC.

    Stato della vista

    Visualizza stato

    Passo 2: Scarica Microsoft SQL Server Data-Tier Application Framework (18.1)

    È necessario scaricare e installare l’ultima versione di SSDT. Passare a URL https://www.microsoft.com/en-us/download/details.aspx?id=57784 e fare clic su Download.

    Scarica Microsoft SQL Server Data-Tier Application Framework

    Scarica Microsoft SQL Server Data-Tier Application Framework

    Seleziona la versione del file MSI richiesta e scaricala. Si tratta di un file di pacchetto leggero.

    Scegli MSI

    Scegliere MSI

    Seguire la procedura guidata di installazione per l’impostazione di Microsoft SQL Server Data-tier Application framework.

    stato di avanzamento dell'Installazione

    stato di avanzamento dell'Installazione

    stato di avanzamento dell'Installazione messaggio

    stato di avanzamento dell'Installazione messaggio

    Installazione terminata

    Installazione completata

    Step 3: Rinominare il. File BACPAC a .ZIP

    In questo passaggio, rinominiamo il file del pacchetto BACPAC esportato in un formato ZIP. Per fare ciò, fare clic destro sul BACPAC importato e modificare l’estensione a ZIP. Il tipo di file viene compresso (compresso) dopo aver modificato l’estensione, come mostrato nella figura seguente.

    Rinominare il .File BACPAC a .ZIP

    Rinominare il .File BACPAC a .ZIP

    Fare clic con il pulsante destro del mouse sul file compresso ed estrarlo. Nella cartella estratta, trovi un modello.xml, copia il modello.xml in un’altra directory come C:\Temp cartella.

    Modello, file xml

    Modello, file xml

    Aprire il modello.xml da C:\Temp\Model.xml e modificare le regole di confronto DB. La figura seguente mostra le vecchie e nuove regole di confronto per il database SQL di Azure. Qui usiamo le regole di confronto SQL con maiuscole e minuscole.

    Modifica regole di confronto nel modello.xml

    Modifica regole di confronto nel modello.xml

    Passaggio 4: distribuire il database di Azure utilizzando sqlpackage.exe

    Qui, passare alla directory C:\Program File \ Microsoft SQL Server \ 150 \ DAC \ bin nel prompt dei comandi. Usiamo sqlpackage.exe per importare il BACPAC con il parametro / ModelFilePath. Sostituisce la configurazione del file del modello BACPAC con il file specifico in questo parametro.

    Parametri richiesti:

    • /tsn: Specificare l’FQDN di Azure SQL Server in cui si desidera importare questo file BACPAC. Nel mio caso, è azuredemosqldemo.database.windows.net
    • / tdn: è il nuovo nome del database SQL di Azure. Impossibile importare BACPAC in un database esistente
    • / tu: specificare il nome utente amministratore per connettersi con Azure SQL Server e distribuire il database
    • /tp: Immettere la password per l’utente amministratore
    • /sf: specificare il percorso del file BACPAC
    • / ModelFilePath: immettere il modello aggiornato.Percorso file XML

    In precedenza, abbiamo cambiato l’estensione del file BACPAC in ZIP. Dobbiamo cambiarlo in BACPAC per eseguire sqlpackage.comando exe.

    Per modificare le regole di confronto nel BACPAC, eseguire il seguente comando in un prompt dei comandi.

    pacchetto sql.exe / Azione: Importa /tsn:azuredemosqldemo.database.windows.net /tdn: azuredemodatabasenuovo / tu: sqladmin /tp:******* /sf: C:\Temp\azuredemodatabase.BACPAC / ModelFilePath: C: \ Temp \ modello.xml

    Viene visualizzato un messaggio di avviso:

    “Sovrascrittura del modello.xml usando il file ‘C:\Temp\model.xml”. L’utilizzo di questa impostazione può causare errori di distribuzione e / o perdite di dati non intenzionali. Questa impostazione intende essere utilizzata solo quando si risolvono i problemi con la pubblicazione, l’importazione o la generazione di script ”

    Avvia l’importazione dei dati, elabora le tabelle e distribuisce il database su di esso. Il tempo di distribuzione del database dipende dal numero di tabelle, dimensioni dei dati, indici.

    distribuire il database utilizzando sqlpackage.exe

    Alla fine, si ottiene il messaggio – Database importato con successo.

    database importato con successo

    Passaggio 5: Verifica

    Ora, connettersi al database di Azure utilizzando SSMS e verificare le regole di confronto del database utilizzando il seguente script.

    1
    SELEZIONA CONVERTI(varchar (256), DATABASEPROPERTYEX (‘azuredemodatabasenew’, ‘collation’));

    Come mostrato di seguito, il database appena distribuito utilizza collation SQL_Latin1_General_CP1_CS_AS.

    Verificare le regole di confronto nel database SQL di Azure distribuito

    Ora, accedere al portale di Azure e visualizzare le proprietà del database. Questo database ha un general-purpose Gen5, 2vcores livello dei prezzi. Non abbiamo specificato alcun livello di prezzo durante la distribuzione del database. Pertanto, il database SQL di Azure accetta il livello dei prezzi predefinito.

    Visualizza i livelli dei prezzi

    Passo 6: Distribuire il database di Azure in un livello di prezzi specifico

    Supponiamo di voler distribuire un database con regole di confronto modificate e un livello di prezzi di base. Per questa demo, cambiamo le regole di confronto DB a Latin1_General_BIN. Pertanto, aprire il modello.xml e modificare le regole di confronto come evidenziato prima.

    Cambia le regole di confronto DB in Latin1_General_BIN.

    Questa volta specifichiamo un nuovo parametro(/p) per impostare l’edizione del database. Indica ad Azure di distribuire il database sotto il livello di prezzo specifico.

    pacchetto sql.exe / Azione: Importazione / tsn: azuredemosqldemo.database.windows.net /tdn: azuredemodatabasenew / tu: sqladmin /tp:******* /p:DatabaseEdition=Base /sf: C:\Temp\azuredemodatabase.BACPAC / ModelFilePath: C: \ Temp \ modello.xml

    Deploy package

    Una volta distribuito il DB, verificare le regole di confronto del database. Come mostrato di seguito, utilizza le regole di confronto Latin1_General_BIN.

    Verifica confronto DB

    Verifica regole di confronto DB

    È possibile connettersi al portale di Azure e verificare il livello dei prezzi come Base.

    Verifica livello prezzi

    • Nota: Non è necessario modificare le regole di confronto DB senza requisiti specifici. Potrebbe causare problemi se lo si modifica arbitrariamente

    Conclusione

    Questo articolo ha esplorato le regole di confronto predefinite del database SQL di Azure e il processo per modificarlo durante l’importazione di DB da un file BACPAC. È possibile specificare le regole di confronto desiderate e distribuire il database. Tuttavia, non modificare mai le regole di confronto a meno che non si abbia un requisito specifico. È possibile provare i passaggi sul proprio database SQL Azure di prova.

    • Autore
    • Post Recenti
    Rajendra Gupta
    Come un certificato MCSA e Microsoft Certified Trainer a Gurgaon, in India, con 13 anni di esperienza, Rajendra collabora con una serie di grandi imprese di messa a fuoco sull’ottimizzazione delle prestazioni, il monitoraggio, l’alta disponibilità e disaster recovery per le strategie e l’attuazione. È autore di centinaia di articoli autorevoli su SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS/Amazon RDS, Git e tecnologie correlate che sono stati visti da oltre 10 milioni di lettori fino ad oggi.
    È il creatore di una delle più grandi collezioni online gratuite di articoli su un singolo argomento, con la sua serie di 50 parti su SQL Server Always On Availability Groups. Sulla base del suo contributo alla comunità SQL Server, è stato riconosciuto con vari premi tra cui il prestigioso “Best author of the year” ininterrottamente nel 2020 e 2021 a SQLShack.
    Raj è sempre interessato a nuove sfide, quindi se hai bisogno di consulenza su qualsiasi argomento trattato nei suoi scritti, può essere raggiunto a rajendra.gupta16 @ gmail.com
    Visualizza tutti i messaggi di Rajendra Gupta

    Rajendra Gupta
    Ultimi messaggi di Rajendra Gupta (vedi tutti)
    • Utilizzare il BRACCIO di modelli per distribuire Azure contenitore di istanze di SQL Server Linux immagini – 21 dicembre, 2021
    • accesso Remoto al desktop per AWS RDS SQL Server con Amazon RDS Personalizzato – dicembre 14, 2021
    • Memorizzare i file di SQL Server Persistente di Archiviazione di Azure Contenitore di Istanze di dicembre 10, 2021

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.