Share via


Règles d’évaluation pour la migration de SQL Server vers Azure SQL Managed Instance

S’applique à :Azure SQL Managed Instance

Les outils de migration valident votre instance source SQL Server en exécutant plusieurs règles d’évaluation. Ces règles identifient les problèmes qui doivent être résolus avant de migrer votre base de données SQL Server vers Azure SQL Managed Instance.

Cet article fournit la liste des règles utilisées pour évaluer la faisabilité de la migration de votre base de données SQL Server vers Azure SQL Managed Instance.

Résumé des règles

Titre de la règle Level Category Détails
AnalysisCommandJob Instance Avertissement L’étape de travail AnalysisCommand n’est pas prise en charge dans Azure SQL Managed Instance.
AnalysisQueryJob Instance Avertissement L’étape de travail AnalysisQuery n’est pas prise en charge dans Azure SQL Managed Instance.
AssemblyFromFile Base de données Problème Les instructions « CREATE ASSEMBLY » et « ALTER ASSEMBLY » avec un paramètre de fichier ne sont pas prises en charge dans Azure SQL Managed Instance.
BulkInsert Base de données Problème L’instruction BULK INSERT avec une source de données blob non-Azure n’est pas prise en charge dans Azure SQL Managed Instance.
ClrStrictSecurity Base de données Avertissement Les assemblys CLR marqués comme étant SAFE ou EXTERNAL_ACCESS sont considérés comme étant UNSAFE.
ComputeClause Base de données Avertissement La clause COMPUTE n’est plus prise en charge et a été supprimée.
CryptographicProvider Base de données Problème Nous avons identifié une utilisation de CREATE CRYPTOGRAPHIC PROVIDER ou ALTER CRYPTOGRAPHIC PROVIDER. Elle n’est pas prise en charge dans Azure SQL Managed Instance.
DatabasePrincipalAlias Base de données Problème SYS.DATABASE_PRINCIPAL_ALIASES n’est plus pris en charge et a été supprimé.
DbCompatLevelLowerThan100 Base de données Avertissement Un niveau de compatibilité de base de données inférieur à 100 n’est pas pris en charge.
DisableDefCNSTCHK Base de données Problème L’option SET DISABLE_DEF_CNST_CHK n’est plus prise en charge et a été supprimée.
FastFirstRowHint Base de données Avertissement L’indicateur de requête FASTFIRSTROW n’est plus pris en charge et a été supprimé.
FileStream Base de données Problème Les fonctionnalités FILESTREAM et Filetable ne sont pas prises en charge dans Azure SQL Managed Instance.
LinkedServerWithNonSQLProvider Base de données Problème Un serveur lié avec fournisseur non-SQL Server n’est pas pris en charge dans Azure SQL Managed Instance.
MergeJob Instance Avertissement L’étape de travail de fusion n’est pas prise en charge dans Azure SQL Managed Instance.
MIDatabaseSize Base de données Problème Azure SQL Managed Instance ne prend pas en charge les tailles de base de données supérieures à 16 To.
MIHeterogeneousMSDTCTransactSQL Base de données Problème La transaction BEGIN DISTRIBUTED TRANSACTION avec un serveur distant non-SQL Server n’est pas prise en charge dans Azure SQL Managed Instance.
MIHomogeneousMSDTCTransactSQL Base de données Problème La transaction BEGIN DISTRIBUTED TRANSACTION est prise en charge sur plusieurs serveurs pour Azure SQL Managed Instance.
MIInstanceSize Instance Avertissement La taille de stockage d’instance maximale dans Azure SQL Managed Instance ne peut pas être supérieure à 8 To.
MultipleLogFiles Base de données Problème Azure SQL Managed Instance ne prend pas en charge les bases de données avec plusieurs fichiers journaux.
NextColumn Base de données Problème Les tables et colonnes appelées NEXT provoquent une erreur dans Azure SQL Managed Instance.
NonANSILeftOuterJoinSyntax Base de données Avertissement La jonction externe gauche de style non-ANSI n’est plus prise en charge et a été supprimée.
NonANSIRightOuterJoinSyntax Base de données Avertissement La jonction externe droite de style non-ANSI n’est plus prise en charge et a été supprimée.
NumDbExceeds100 Instance Avertissement Azure SQL Managed Instance prend en charge un maximum de 100 bases de données par instance.
OpenRowsetWithNonBlobDataSourceBulk Base de données Problème L’élément OpenRowSet utilisé dans une opération en bloc avec une source de données de stockage blob non-Azure n’est pas pris en charge dans Azure SQL Managed Instance.
OpenRowsetWithNonSQLProvider Base de données Problème L’élément OpenRowSet avec un fournisseur non-SQL n’est pas pris en charge dans Azure SQL Managed Instance.
PowerShellJob Instance Avertissement L’étape de travail PowerShell n’est pas prise en charge dans Azure SQL Managed Instance.
QueueReaderJob Instance Avertissement L’étape de travail Lecture de la file d’attente n’est pas prise en charge dans Azure SQL Managed Instance.
RAISERROR Base de données Avertissement Les appels de RAISERROR en style hérité doivent être remplacés par des équivalents récents.
SqlMail Base de données Avertissement SQL Mail n’est plus pris en charge.
SystemProcedures110 Base de données Avertissement Détection d’instructions faisant référence à des procédures stockées système supprimées et qui ne sont pas disponibles dans Azure SQL Managed Instance.
TraceFlags Instance Avertissement Des indicateurs de trace non pris en charge dans Azure SQL Managed Instance ont été trouvés.
TransactSqlJob Instance Avertissement L’étape de travail TSQL inclut des commandes non prises en charge dans Azure SQL Managed Instance.
WindowsAuthentication Instance Avertissement Les utilisateurs de base de données mappés avec l’authentification Windows (sécurité intégrée) ne sont pas pris en charge dans Azure SQL Managed Instance.
XpCmdshell Base de données Problème xp_cmdshell n’est pas pris en charge dans Azure SQL Managed Instance.

Travail AnalysisCommand

Titre : L’étape de travail AnalysisCommand n’est pas prise en charge dans Azure SQL Managed Instance.
Catégorie : Avertissement

Description
Il s’agit d’une étape de travail qui exécute une commande Analysis Services. L’étape de travail AnalysisCommand n’est pas prise en charge dans Azure SQL Managed Instance.

Recommandation
Consultez la section des objets affectés dans Azure Migrate pour voir tous les travaux utilisant l’étape de travail Commande Analysis Services et évaluer si l’étape de travail ou l’objet affecté peut être supprimé. Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

Informations supplémentaires : Différences de SQL Server Agent dans Azure SQL Managed Instance

Travail AnalysisQuery

Titre : L’étape de travail AnalysisQuery n’est pas prise en charge dans Azure SQL Managed Instance.
Catégorie : Avertissement

Description
Il s’agit d’une étape de travail qui exécute une requête Analysis Services. L’étape de travail AnalysisQuery n’est pas prise en charge dans Azure SQL Managed Instance.

Recommandation
Consultez la section des objets affectés dans Azure Migrate pour voir tous les travaux utilisant l’étape de travail de requête Analysis Services et évaluer si l’étape de travail ou l’objet affecté peut être supprimé. Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

Informations supplémentaires : Différences de SQL Server Agent dans Azure SQL Managed Instance

Assembly d’un fichier

Titre : Les instructions « CREATE ASSEMBLY » et « ALTER ASSEMBLY » avec un paramètre de fichier ne sont pas pris en charge dans Azure SQL Managed Instance.
Catégorie: Problème

Description
Azure SQL Managed Instance ne prend pas en charge CREATE ASSEMBLY ni ALTER ASSEMBLY avec un paramètre de fichier. Un paramètre binaire est pris en charge. Consultez la section Objets affectés pour connaître l’objet spécifique dans lequel le paramètre de fichier est utilisé.

Recommandation
Passez en revue les objets à l’aide de CREATE ASSEMBLY ou ALTER ASSEMBLY avec un paramètre de fichier. Si ces objets sont requis, convertissez le paramètre de fichier en paramètre binaire. Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

Informations supplémentaires : Différences de CLR dans Azure SQL Managed Instance

BULK INSERT

Titre : L’instruction BULK INSERT avec une source de données blob non Azure n’est pas prise en charge dans Azure SQL Managed Instance.
Catégorie: Problème

Description
Azure SQL Managed Instance ne peut pas accéder à des partages de fichiers ou à des dossiers Windows. Consultez la section « Objets affectés » pour connaître les utilisations spécifiques des instructions BULK INSERT qui ne font pas référence à un objet blob Azure. Des objets avec l’instruction « BULK INSERT » dont la source n’est pas Stockage Blob Azure ne fonctionnent pas après la migration vers Azure SQL Managed Instance.

Recommandation
Vous devez convertir les instructions BULK INSERT qui utilisent des fichiers locaux ou des partages de fichiers pour qu’elles utilisent des fichiers de Stockage Blob Azure à la place, pendant la migration vers Azure SQL Managed Instance.

Informations supplémentaires : Différences de BULK INSERT et d’OPENROWSET dans Azure SQL Managed Instance

Sécurité CLR

Titre : Les assemblys CLR marqués comme étant SAFE ou EXTERNAL_ACCESS sont considérés comme étant UNSAFE
Catégorie : Avertissement

Description
Le mode Sécurité CLR stricte est appliqué dans Azure SQL Managed Instance. Ce mode est activé par défaut et introduit des changements importants pour les bases de données contenant des assemblys CLR définis par l’utilisateur marqués comme étant SAFE ou EXTERNAL_ACCESS.

Recommandation
CLR utilise la sécurité d’accès du code (CAS) dans le .NET Framework, qui n’est plus pris en charge comme limite de sécurité. Depuis le moteur de base de données SQL Server 2017 (14. x), une option sp_configure appelée clr strict security a été introduite pour améliorer la sécurité des assemblys CLR. L’option clr strict security activée par défaut traite les assemblys CLR SAFE et EXTERNAL_ACCESS comme s’ils étaient marqués comme étant UNSAFE. Quand l’option clr strict security est désactivée, un assembly CLR créé avec PERMISSION_SET = SAFE peut être en mesure d’accéder à des ressources système externes, d’appeler du code non managé et d’acquérir des privilèges sysadmin. Une fois la sécurité stricte activée, le chargement des assemblys non signés échoue. Par ailleurs, si une base de données contient des assemblys SAFE ou EXTERNAL_ACCESS, les instructions RESTORE ou ATTACH DATABASE peuvent aboutir, mais le chargement des assemblys peut échouer. Pour charger les assemblys, vous devez modifier, ou bien supprimer et recréer, chaque assembly, de façon à ce qu’il soit signé avec un certificat ou une clé asymétrique ayant un login correspondant avec l’autorisation UNSAFE ASSEMBLY sur le serveur.

Informations supplémentaires : Sécurité CLR stricte

Clause COMPUTE

La clause COMPUTE n’est plus prise en charge et a été supprimée.
Catégorie : Avertissement

Description
La clause COMPUTE génère des totaux qui s’affichent sous la forme de colonnes de résumé supplémentaires à la fin du jeu de résultats. Toutefois, cette clause n’est plus prise en charge dans Azure SQL Managed Instance.

Recommandation
Le module T-SQL doit être réécrit en utilisant l’opérateur ROLLUP à la place. Le code suivant montre comment remplacer COMPUTE par ROLLUP :

USE AdventureWorks2022;GO;

SELECT SalesOrderID,
    UnitPrice,
    UnitPriceDiscount
FROM Sales.SalesOrderDetail
ORDER BY SalesOrderID COMPUTE SUM(UnitPrice),
    SUM(UnitPriceDiscount) BY SalesOrderID GO;

SELECT SalesOrderID,
    UnitPrice,
    UnitPriceDiscount,
    SUM(UnitPrice) AS UnitPrice,
    SUM(UnitPriceDiscount) AS UnitPriceDiscount
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID,
    UnitPrice,
    UnitPriceDiscount
WITH ROLLUP;

Informations supplémentaires : Fonctionnalité du moteur de base de données abandonnée dans SQL Server

Fournisseur de chiffrement

Titre : Nous avons identifié une utilisation de CREATE CRYPTOGRAPHIC PROVIDER ou ALTER CRYPTOGRAPHIC PROVIDER, ce qui n’est pas pris en charge dans Azure SQL Managed Instance.
Catégorie: Problème

Description
Azure SQL Managed Instance ne prend pas en charge les instructions CRYPTOGRAPHIC PROVIDER, car il ne peut pas accéder aux fichiers. Consultez la section sur les Objets affectés pour connaître les utilisations spécifiques des instructions CRYPTOGRAPHIC PROVIDER. Des objets disposant d’instructions « CREATE CRYPTOGRAPHIC PROVIDER » ou « ALTER CRYPTOGRAPHIC PROVIDER » ne fonctionneront pas correctement après migration vers Azure SQL Managed Instance.

Recommandation
Révisez les objets avec « CREATE CRYPTOGRAPHIC PROVIDER » ou « ALTER CRYPTOGRAPHIC PROVIDER ». Dans tous les objets de ce type requis, supprimez les utilisations de ces fonctionnalités. Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

Informations supplémentaires : Différences de fournisseur de chiffrement dans Azure SQL Managed Instance

Compatibilité de base de données

Titre : Un niveau de compatibilité de la base de données inférieur à 100 n’est pas pris en charge
Catégorie : Avertissement

Description
Le Niveau de compatibilité de la base de données est un outil précieux quand il s’agit de moderniser une base de données. Il permet en effet de mettre à niveau le Moteur de base de données SQL Server tout en continuant de connecter l’état opérationnel des applications en conservant le Niveau de compatibilité de la base de données antérieur à la mise à niveau. Azure SQL Managed Instance ne prend pas en charge les niveaux de compatibilité inférieurs à 100. Lors de la restauration de la base de données avec un niveau de compatibilité inférieur à 100 sur Azure SQL Managed Instance, le niveau de compatibilité est porté à 100.

Recommandation
Évaluez si la fonctionnalité de l’application est intacte quand le niveau de compatibilité de la base de données est porté à 100 sur Azure SQL Database. Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

Informations supplémentaires : Niveaux de compatibilité pris en charge dans Azure SQL Managed Instance

Alias principal de base de données

Titre : SYS.DATABASE_PRINCIPAL_ALIASES n’est plus pris en charge et a été supprimé.
Catégorie: Problème

Description
SYS.DATABASE_PRINCIPAL_ALIASES n’est plus pris en charge et a été supprimé dans Azure SQL Managed Instance.

Recommandation
Utilisez des rôles à la place d'alias.

Informations supplémentaires : Fonctionnalité du moteur de base de données abandonnée dans SQL Server

Option DISABLE_DEF_CNST_CHK

L’option SET DISABLE_DEF_CNST_CHK n’est plus prise en charge et a été supprimée.
Catégorie: Problème

Description
L’option SET DISABLE_DEF_CNST_CHK n’est plus prise en charge et a été supprimée dans Azure SQL Managed Instance.

Informations supplémentaires : Fonctionnalité du moteur de base de données abandonnée dans SQL Server

FASTFIRSTROW, indicateur

L’indicateur de requête FASTFIRSTROW n’est plus pris en charge et a été supprimé.
Catégorie : Avertissement

Description
L’indicateur de requête FASTFIRSTROW n’est plus pris en charge et a été supprimé dans Azure SQL Managed Instance.

Recommandation
Au lieu de l’indicateur de requête FASTFIRSTROW, utilisez OPTION (FAST n).

Informations supplémentaires : Fonctionnalité du moteur de base de données abandonnée dans SQL Server

FILESTREAM

Titre : Les fonctionnalités FILESTREAM et Filetable ne sont pas prises en charge dans Azure SQL Managed Instance.
Catégorie: Problème

Description
La fonctionnalité FILESTREAM qui permet de stocker des données non structurées telles que des documents texte, des images et des vidéos dans le système de fichiers NTFS, n’est pas prise en charge dans Azure SQL Managed Instance. Il n’est pas possible de migrer cette base de données, car il n’est pas possible de restaurer la sauvegarde contenant les groupes de fichiers FILESTREAM sur Azure SQL Managed Instance.

Recommandation
Chargez les fichiers non structurés dans le service Stockage Blob Azure et stockez les métadonnées associées à ces fichiers (nom, type, adresse URL, clé de stockage, etc.) dans Azure SQL Managed Instance. Il se peut que vous deviez remanier votre application pour activer la diffusion en continu de blobs vers et depuis Azure SQL Managed Instance. Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

Informations supplémentaire : Blog sur la diffusion en continu de blobs vers et depuis SQL Azure

MS DTC hétérogène

Titre : La transaction BEGIN DISTRIBUTED TRANSACTION avec un serveur distant non SQL Server n’est pas pris en charge dans Azure SQL Managed Instance.
Catégorie: Problème

Description
La transaction distribuée démarrée par Transact SQL BEGIN DISTRIBUTED TRANSACTION et gérée par Microsoft Distributed Transaction Coordinator (MS DTC) n’est pas prise en charge dans Azure SQL Managed Instance si le serveur distant n’est pas un SQL Server.

Recommandation
Examinez la section sur les Objets affectés dans Azure Migrate pour voir tous les objets utilisant la transaction BEGIN DISTRUBUTED TRANSACTION. Envisagez de migrer les bases de données participantes vers Azure SQL Managed Instance où les transactions distribuées sur plusieurs instances sont prises en charge. Pour plus d’informations, consultez Transactions sur plusieurs serveurs pour Azure SQL Managed Instance.

Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

MS DTC homogène

Titre : La transaction BEGIN DISTRIBUTED TRANSACTION est prise en charge sur plusieurs serveurs pour Azure SQL Managed Instance.
Catégorie: Problème

Description
La transaction distribuée SQL BEGIN DISTRIBUTED TRANSACTION démarrée par Transact et gérée par Microsoft Distributed Transaction Coordinator (MS DTC) est prise en charge sur plusieurs serveurs pour Azure SQL Managed Instance.

Recommandation
Examinez la section sur les Objets affectés dans Azure Migrate pour voir tous les objets utilisant la transaction BEGIN DISTRUBUTED TRANSACTION. Envisagez de migrer les bases de données participantes vers Azure SQL Managed Instance où les transactions distribuées sur plusieurs instances sont prises en charge. Pour plus d’informations, consultez Transactions sur plusieurs serveurs pour Azure SQL Managed Instance.

Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

Serveur lié (fournisseur non SQL)

Titre : Un serveur lié avec fournisseur non SQL Server n’est pas pris en charge dans Azure SQL Managed Instance.
Catégorie: Problème

Description
Des serveurs liés permettent au Moteur de base de données SQL Server d’exécuter des commandes sur des sources de données OLE DB en dehors de l’instance de SQL Server. Un serveur lié avec fournisseur non-SQL Server n’est pas pris en charge dans Azure SQL Managed Instance.

Recommandation
Azure SQL Managed Instance ne prend pas en charge la fonctionnalité de serveur lié si le fournisseur de serveur distant n’est pas un SQL Server, comme Oracle, Sybase, etc.

Les actions suivantes sont recommandées pour éliminer le besoin de serveurs liés :

  • Identifiez les bases de données dépendantes à partir de serveurs non SQL distants et pensez à les déplacer dans la base de données en cours de migration.
  • Migrez les bases de données dépendantes vers des cibles prises en charge, telles que des instances SQL Managed Instance, SQL Database, Azure Synapse et SQL Server.
  • Envisagez de créer un serveur lié entre Azure SQL Managed Instance et SQL Server sur une machine virtuelle Azure (machine virtuelle SQL). Ensuite, à partir de la machine virtuelle SQL, créez un serveur lié sur Oracle, Sybase, etc. Une telle approche implique deux tronçons, mais peut être utilisée comme solution de contournement temporaire.
  • Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

Informations supplémentaires : Différences de serveurs liés dans Azure SQL Managed Instance

Travail de fusion

Titre : L’étape de travail de fusion n’est pas prise en charge dans Azure SQL Managed Instance.
Catégorie : Avertissement

Description
Il s’agit d’une étape de travail qui active l’Agent de fusion pour la réplication. L'Agent de fusion de réplication est un fichier exécutable d'utilitaire qui applique l'instantané initial contenu dans les tables de base de données aux Abonnés. Il fusionne également les modifications de données incrémentielles ayant eu lieu sur le serveur de publication après la création de l’instantané initial, puis harmonise les conflits soit en fonction des règles que vous configurez, soit à l’aide d’un programme de résolution personnalisé que vous créez. L’étape de travail de fusion n’est pas prise en charge dans Azure SQL Managed Instance.

Recommandation
Consultez la section sur les Objets affectés dans Azure Migrate pour afficher tous les travaux utilisant l’étape de travail de fusion et déterminer si l’étape de travail ou l’objet affecté peut être supprimé. Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

Informations supplémentaires : Différences de SQL Server Agent dans Azure SQL Managed Instance

Taille de base de données MI

Titre : Azure SQL Managed Instance ne prend pas en charge les tailles de base de données supérieures à 16 To.
Catégorie: Problème

Description
La taille de la base de données est supérieure au stockage réservé d’instance maximal. Cette base de données ne peut pas être sélectionnée pour la migration, car sa taille dépasse la limite autorisée.

Recommandation
Évaluez si les données peuvent être archivées compressées ou partitionnées dans plusieurs bases de données. Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

Informations supplémentaires : Caractéristiques matérielles d’Azure SQL Managed Instance

Taille d’instances MI

Titre : La taille de stockage d’instance maximale dans Azure SQL Managed Instance ne peut pas être supérieure à 8 To.
Catégorie : Avertissement

Description
La taille de toutes les bases de données est supérieure au stockage réservé d’instance maximal.

Recommandation
Envisagez de migrer les bases de données vers différentes instances Azure SQL Managed ou vers SQL Server sur une machine virtuelle Azure si toutes les bases de données doivent exister sur la même instance.

Informations supplémentaires : Caractéristiques matérielles d’Azure SQL Managed Instance

Fichiers journaux multiples

Titre : Azure SQL Managed Instance ne prend pas en charge des fichiers journaux multiples.
Catégorie: Problème

Description
SQL Server permet à une base de données de journaliser dans plusieurs fichiers. Cette base de données possède plusieurs fichiers journaux, ce qui n’est pas pris en charge dans Azure SQL Managed Instance. **Il n’est pas possible de migrer cette base de données, car il n’est pas possible de restaurer la sauvegarde sur Azure SQL Managed Instance.
**

Recommandation
Azure SQL Managed Instance prend en charge un seul journal par base de données. Vous devez supprimer tous les fichiers journaux sauf un avant de migrer cette base de données vers Azure :

ALTER DATABASE [database_name] REMOVE FILE [log_file_name]

Informations supplémentaires : Options de base de données non prises en charge dans Azure SQL Managed Instance

Colonne Next

Titre : les tables et colonnes nommées NEXT provoquent une erreur dans Azure SQL Managed Instance.
Catégorie: Problème

Description
Des tables ou colonnes nommées NEXT ont été détectées. Les séquences introduites dans Microsoft SQL Server utilisent la fonction ANSI standard NEXT VALUE FOR. Les tables ou les colonnes nommées NEXT et la colonne ayant pour alias VALUE sans le mot-clé AS de la norme ANSI peuvent provoquer une erreur.

Recommandation
Réécrivez les instructions pour inclure le mot clé ANSI standard AS lors de l'utilisation d'alias pour une table ou une colonne. Par exemple, quand une colonne est nommée NEXT et que cette colonne a pour alias VALUE, la requête SELECT NEXT VALUE FROM TABLE provoque une erreur et doit être réécrite sous la forme SELECT NEXT AS VALUE FROM TABLE. De même, pour une table nommée NEXT ayant pour alias VALUE, la requête SELECT col1 FROM NEXT VALUE provoque une erreur et doit être réécrite sous la forme SELECT col1 FROM NEXT AS VALUE.

Jointure externe gauche de style non ANSI

La jonction externe gauche de style non-ANSI n’est plus prise en charge et a été supprimée.
Catégorie : Avertissement

Description
La jonction externe gauche de style non-ANSI n’est plus prise en charge et a été supprimée dans Azure SQL Managed Instance.

Recommandation
Utilisez la syntaxe de jointure ANSI.

Informations supplémentaires : Fonctionnalité du moteur de base de données abandonnée dans SQL Server

Jointure externe droite de style non ANSI

Titre : La jonction externe droite de style non-ANSI n’est plus prise en charge et a été supprimée.
Catégorie : Avertissement

Description
La jonction externe droite de style non-ANSI n’est plus prise en charge et a été supprimée dans Azure SQL Managed Instance.

Informations supplémentaires : Fonctionnalité du moteur de base de données abandonnée dans SQL Server

Recommandation
Utilisez la syntaxe de jointure ANSI.

Nombre de bases de données supérieur à 100

Titre : Azure SQL Managed Instance prend en charge un maximum de 100 bases de données par instance.
Catégorie : Avertissement

Description
Le nombre maximal de bases de données prises en charge dans Azure SQL Managed Instance est de 100, sauf si la limite de taille de stockage d’instance a été atteinte.

Recommandation
Envisagez de migrer les bases de données vers différentes instances Azure SQL Managed ou vers SQL Server sur une machine virtuelle Azure si toutes les bases de données doivent exister sur la même instance.

Informations supplémentaires : Limites des ressources Azure SQL Managed Instance

OPENROWSET (source de données non-BLOB)

Titre : OpenRowSet utilisé dans une opération en bloc avec une source de données de stockage blob non Azure n’est pas pris en charge dans Azure SQL Managed Instance.
Catégorie: Problème

Description
OPENROWSET prend en charge les opérations en bloc par l’intermédiaire d’un fournisseur BULK intégré qui permet de lire les données d’un fichier et de les retourner sous la forme d’un ensemble de lignes. OPENROWSET avec une source de données n’étant pas un Stockage Blob Azure n’est pas pris en charge dans Azure SQL Managed Instance.

Recommandation
Azure SQL Managed Instance ne pouvant pas accéder aux partages de fichiers ni aux dossiers Windows, les fichiers doivent être importés à partir du Stockage Blob Azure. Par conséquent, seul le type de blob DATASOURCE est pris en charge dans la fonction OPENROWSET. Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

Informations supplémentaires : Différences de BULK INSERT et d’OPENROWSET dans Azure SQL Managed Instance

OPENROWSET (fournisseur non SQL)

Titre : OpenRowSet avec un fournisseur non-SQL n’est pas pris en charge dans Azure SQL Managed Instance.
Catégorie: Problème

Description
Cette méthode est une autre façon d'accéder à des tables dans un serveur lié et constitue une méthode efficace pour vous connecter et accéder à des données distantes en utilisant OLE DB. L’élément OpenRowSet avec un fournisseur non-SQL n’est pas pris en charge dans Azure SQL Managed Instance.

Recommandation
La fonction OPENROWSET peut être utilisée pour exécuter des requêtes uniquement sur des instances SQL Server (gérées, locales ou sur des machines virtuelles). Les fournisseurs SQLNCLI, SQLNCLI11, SQLOLEDB et MSOLEDBSQL (recommandés) sont pris en charge. Le pilote Microsoft OLE DB (MSOLEDBSQL) pour SQL Server est recommandé pour tout nouveau développement.

L’action recommandée consiste à identifier les bases de données dépendantes des serveurs non SQL distants pour les déplacer vers l’instance en cours de migration.

Informations supplémentaires : Différences de BULK INSERT et d’OPENROWSET dans Azure SQL Managed Instance

Travail PowerShell

Titre : L’étape de travail PowerShell n’est pas prise en charge dans Azure SQL Managed Instance.
Catégorie : Avertissement

Description
Il s’agit d’une étape de travail qui exécute un script PowerShell. L’étape de travail PowerShell n’est pas prise en charge dans Azure SQL Managed Instance.

Recommandation
Consultez la section sur les Objets affectés dans Azure Migrate pour afficher tous les travaux utilisant l’étape de travail PowerShell et déterminer si l’étape de travail ou l’objet affecté peut être supprimé. Évaluez si Azure Automation peut être utilisé. Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

Informations supplémentaires : Différences de SQL Server Agent dans Azure SQL Managed Instance

Travail Lecture de la file d’attente

Titre : L’étape de travail Lecture de la file d’attente n’est pas prise en charge dans Azure SQL Managed Instance.
Catégorie : Avertissement

Description
Il s’agit d’une étape de travail qui active l’Agent de lecture de la file d’attente pour la réplication. L’Agent de lecture de la file d’attente de réplication est un fichier exécutable qui lit les messages stockés dans une file d’attente Microsoft SQL Server ou une file d’attente de messages Microsoft, puis qui applique ces messages au serveur de publication. L'Agent de lecture de la file d'attente est utilisé avec les publications transactionnelles et les publications d'instantané qui autorisent la mise à jour en attente. L’étape de travail Lecture de la file d’attente n’est pas prise en charge dans Azure SQL Managed Instance.

Recommandation
Consultez la section sur les Objets affectés dans Azure Migrate pour afficher tous les travaux utilisant l’étape de travail Lecture de la file d’attente et déterminer si l’étape de travail ou l’objet affecté peut être supprimé. Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

Informations supplémentaires : Différences de SQL Server Agent dans Azure SQL Managed Instance

RAISERROR

Titre : Les appels de RAISERROR de style hérité doivent être remplacés par des équivalents récents.
Catégorie : Avertissement

Description
Les appels RAISERROR comme dans l’exemple ci-dessous sont dits de style hérité parce qu’ils n’incluent pas les virgules et les parenthèses. RAISERROR 50001 'this is a test'. Cette méthode d’appel de RAISERROR n’est plus prise en charge et a été supprimée dans Azure SQL Managed Instance.

Recommandation
Réécrivez l’instruction en utilisant la syntaxe de RAISERROR actuelle ou vérifiez si l’approche moderne de BEGIN TRY { } END TRY BEGIN CATCH { THROW; } END CATCH est applicable.

Informations supplémentaires : Fonctionnalité du moteur de base de données abandonnée dans SQL Server

SQL Mail

Titre : SQL Mail n’est plus pris en charge.
Catégorie : Avertissement

Description
SQL Mail n’est plus pris en charge et a été supprimé dans Azure SQL Managed Instance.

Recommandation
Utilisez la messagerie de la base de données.

Informations supplémentaires : Fonctionnalité du moteur de base de données abandonnée dans SQL Server

SystemProcedures110

Titre : Instructions détectées qui référencent des procédures stockées système supprimées qui ne sont pas disponibles dans Azure SQL Managed Instance.
Catégorie : Avertissement

Description
Les procédures stockées étendues et système non prises en charge suivantes ne peuvent pas être utilisées dans Azure SQL Managed Instance - sp_dboption, sp_addserver, sp_dropalias,sp_activedirectory_obj, sp_activedirectory_scp et sp_activedirectory_start.

Recommandation
Supprimez les références aux procédures système non prises en charge qui ont été supprimées dans Azure SQL Managed Instance.

Informations supplémentaires : Fonctionnalité du moteur de base de données abandonnée dans SQL Server

Travail Transact-SQL

Titre : L’étape de travail TSQL inclut des commandes non prises en charge dans Azure SQL Managed Instance
Catégorie : Avertissement

Description
Il s’agit d’une étape de travail qui exécute des scripts Transact-SQL à une heure planifiée. L’étape de travail TSQL inclut des commandes non prises en charge dans Azure SQL Managed Instance.

Recommandation
Consultez la section sur les Objets affectés dans Azure Migrate pour voir tous les travaux qui incluent des commandes non prises en charge dans Azure SQL Managed Instance et évaluer si l’étape de travail ou l’objet affecté peut être supprimé. Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

Informations supplémentaires : Différences de SQL Server Agent dans Azure SQL Managed Instance

Indicateurs de trace

Titre : Des indicateurs de trace non pris en charge dans Azure SQL Managed Instance ont été trouvés
Catégorie : Avertissement

Description
Azure SQL Managed Instance ne prend en charge qu’un nombre limité d’indicateurs de trace globaux. Les indicateurs de trace de session ne sont pas pris en charge.

Recommandation
Consultez la section sur les Objets affectés dans Azure Migrate pour afficher tous les indicateurs de trace non pris en charge dans Azure SQL Managed Instance et évaluer s’ils peuvent être supprimés. Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

Informations supplémentaires : Indicateurs de trace

Authentification Windows

Titre : Les utilisateurs de base de données mappés avec l’authentification Windows (sécurité intégrée) ne sont pas pris en charge dans Azure SQL Managed Instance
Catégorie : Avertissement

Description
Azure SQL Managed Instance prend en charge deux types d’authentifications :

  • l’authentification SQL, qui utilise un nom d’utilisateur et un mot de passe
  • L’authentification Microsoft Entra, qui utilise les identités gérées par Microsoft Entra ID (anciennement Azure Active Directory) et qui est prise en charge pour les domaines gérés et intégrés.

Les utilisateurs de base de données mappés avec l’authentification Windows (sécurité intégrée) ne sont pas pris en charge dans Azure SQL Managed Instance.

Recommandation
Fédérer le répertoire local Active Directory avec Microsoft Entra ID. L’identité Windows peut ensuite être remplacée par les identités Microsoft Entra équivalentes. Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

Informations supplémentaires : Fonctionnalités de sécurité de SQL Managed instance

XP_cmdshell

Titre : xp_cmdshell n’est pas pris en charge dans Azure SQL Managed Instance.
Catégorie: Problème

Description
Xp_cmdshell qui génère une interface de commande Windows et transmet une chaîne pour exécution n’est pas pris en charge dans Azure SQL Managed Instance.

Recommandation
Consultez la section sur les Objets affectés dans Azure Migrate pour voir tous les objets qui utilisent xp_cmdshell, et évaluer si la référence à xp_cmdshell ou l’objet affecté peuvent être supprimés. Envisagez d’explorer Azure Automation qui fournit un service d’automatisation et de configuration basé sur le cloud. Vous pouvez également migrer vers SQL Server sur une machine virtuelle Azure.

Informations supplémentaires : Différences de procédures stockées dans Azure SQL Managed Instance