Vai al contenuto

Cambiare la Collation in Azure SQL con Errori di Dipendenza

Scopri come modificare la collation di un’istanza gestita Azure SQL quando emergono errori di dipendenza.

Quando si lavora con Azure SQL Managed Instance, potrebbe sorgere la necessità di cambiare la collation (ovvero le regole di confronto e ordinamento dei dati) del database. Questo processo può risultare complesso, specialmente se si verificano errori di dipendenza, tipicamente segnalati durante l’esecuzione di comandi T-SQL come:

ALTER DATABASE [testdb] COLLATE SQL_Latin1_General_CP1_CS_AS

I messaggi di errore, come “Msg 5075”, indicano che oggetti nel database dipendono dalla collation corrente e questo impedisce la modifica. Per superare ciò, è possibile seguire una procedura specifica che comporta l’esportazione e l’importazione del database.

Ecco una panoramica dei passaggi da seguire:

  • Esportare il database in un file bacpac utilizzando SQLPackage.
  • Modificare la collation editando il file model.xml all’interno del file bacpac.
  • Importare di nuovo il database con SQLPackage, sovrascrivendo il percorso di model.xml.
  • Cambiare il nome del database o modificare la stringa di connessione dell’applicazione per utilizzare il nuovo database.

Prima di iniziare, considera quanto segue:

  • Programma una finestra di manutenzione per la tua applicazione durante il processo e interrompi le operazioni per prevenire perdite di dati.
  • Assicurati di avere la versione più recente di SQLPackage, disponibile al download sul sito ufficiale di Microsoft Learn.
  • Se necessario, consulta i differenti formati di stringa di connessione a seconda del metodo utilizzato, illustrati negli esempi di Microsoft.
  • Nota che questa procedura si applica sia ad Azure SQL DB che ad Azure SQL Managed Instance.

Dettagli dei passaggi:

  1. Avvia la finestra di manutenzione per la tua applicazione.
  2. Esporta il database utilizzando SQLPackage con un comando appropriato.
  3. Rinomina il file .bacpac in .zip per aprirlo con l’esplora risorse e accedere al file model.xml.
  4. Copia il file model.xml in una cartella locale e apporta la modifica alla collation desiderata.
  5. Rinomina il file .zip modificato in .bacpac.
  6. Importa nuovamente il database usando SQLPackage e specifica il percorso di model.xml modificato per sovrascriverlo.
  7. Al termine dell’importazione, cambia il nome del database o la stringa di connessione dell’applicazione per utilizzare il nuovo database.
  8. Termina la finestra di manutenzione per la tua applicazione e riprendi le operazioni assicurandoti che funzioni secondo le aspettative con la nuova configurazione.