Différences T-SQL entre SQL Server et Azure SQL Managed InstanceT-SQL differences between SQL Server & Azure SQL Managed Instance

S’APPLIQUE À : Azure SQL Managed Instance

Cet article résume et explique les différences de syntaxe et de comportement entre Azure SQL Managed Instance et SQL Server.This article summarizes and explains the differences in syntax and behavior between Azure SQL Managed Instance and SQL Server.

SQL Managed Instance offre une haute compatibilité avec le moteur de base de données SQL Server, et la plupart des fonctionnalités sont prises en charge dans une instance gérée SQL.SQL Managed Instance provides high compatibility with the SQL Server database engine, and most features are supported in a SQL Managed Instance.

Migration facile à partir de SQL Server

Certaines limitations PaaS ont été introduites dans SQL Managed Instance et certains comportements ont changé par rapport à SQL Server.There are some PaaS limitations that are introduced in SQL Managed Instance and some behavior changes compared to SQL Server. Les différences se répartissent en différentes catégories, à savoir : The differences are divided into the following categories:

La plupart de ces fonctionnalités sont des contraintes architecturales et représentent des fonctionnalités de service.Most of these features are architectural constraints and represent service features.

Les problèmes connus temporaires qui ont été détectés dans SQL Managed Instance et qui seront résolus ultérieurement sont décrits dans la page des notes de version.Temporary known issues that are discovered in SQL Managed Instance and will be resolved in the future are described in release notes page.

DisponibilitéAvailability

Groupes de disponibilité Always OnAlways On Availability Groups

La haute disponibilité étant intégrée à SQL Managed Instance, les utilisateurs ne peuvent pas la contrôler.High availability is built into SQL Managed Instance and can't be controlled by users. Les instructions suivantes ne sont pas prises en charge :The following statements aren't supported:

SauvegardeBackup

SQL Managed Instance étant doté de sauvegardes automatiques, les utilisateurs peuvent créer des sauvegardes complètes COPY_ONLY de bases de données.SQL Managed Instance has automatic backups, so users can create full database COPY_ONLY backups. Les sauvegardes différentielles de fichiers journaux et de captures instantanées de fichiers ne sont pas prises en charge.Differential, log, and file snapshot backups aren't supported.

  • Avec une instance gérée SQL, vous pouvez sauvegarder une base de données d’instance seulement vers un compte de stockage Blob Azure :With a SQL Managed Instance, you can back up an instance database only to an Azure Blob storage account:
    • Seul BACKUP TO URL est pris en charge.Only BACKUP TO URL is supported.
    • FILE, TAPE et les unités de sauvegarde ne sont pas pris en charge.FILE, TAPE, and backup devices aren't supported.
  • La plupart des options générales WITH sont prises en charge.Most of the general WITH options are supported.
    • COPY_ONLY est obligatoire.COPY_ONLY is mandatory.
    • FILE_SNAPSHOT n’est pas pris en charge.FILE_SNAPSHOT isn't supported.
    • Options de bande : REWIND, NOREWIND, UNLOAD et NOUNLOAD ne sont pas pris en charge.Tape options: REWIND, NOREWIND, UNLOAD, and NOUNLOAD aren't supported.
    • Options propres au journal : NORECOVERY, STANDBY et NO_TRUNCATE ne sont pas pris en charge.Log-specific options: NORECOVERY, STANDBY, and NO_TRUNCATE aren't supported.

Limites :Limitations:

  • Une instance gérée SQL permet de sauvegarder une base de données d’instance vers une sauvegarde comprenant jusqu’à 32 bandes, ce qui est suffisant pour des bases de données allant jusqu’à 4 To si la compression de sauvegarde est utilisée.With a SQL Managed Instance, you can back up an instance database to a backup with up to 32 stripes, which is enough for databases up to 4 TB if backup compression is used.

  • Vous ne pouvez pas exécuter BACKUP DATABASE ... WITH COPY_ONLY sur une base de données qui est chiffrée avec Transparent Data Encryption (TDE) managé par le service.You can't execute BACKUP DATABASE ... WITH COPY_ONLY on a database that's encrypted with service-managed Transparent Data Encryption (TDE). TDE managé par le service oblige le chiffrement des sauvegardes à l’aide d’une clé de chiffrement TDE interne.Service-managed TDE forces backups to be encrypted with an internal TDE key. La clé ne pouvant pas être exportée, vous ne pouvez pas restaurer la sauvegarde.The key can't be exported, so you can't restore the backup. utilisez des sauvegardes automatiques et la restauration dans le temps, ou utilisez TDE managé par le client (BYOK) à la place.Use automatic backups and point-in-time restore, or use customer-managed (BYOK) TDE instead. Vous pouvez également désactiver le chiffrement sur la base de données.You also can disable encryption on the database.

  • La taille maximale de la bande de sauvegarde en utilisant la commande BACKUP dans une instance gérée SQL est de 195 Go, ce qui représente la taille maximale des objets blob.The maximum backup stripe size by using the BACKUP command in SQL Managed Instance is 195 GB, which is the maximum blob size. Augmentez le nombre de bandes défini dans la commande de sauvegarde pour réduire la taille de chaque bande et ainsi ne pas dépasser cette limite.Increase the number of stripes in the backup command to reduce individual stripe size and stay within this limit.

    Conseil

    Pour contourner cette limitation, lorsque vous sauvegardez une base de données, soit à partir de SQL Server dans un environnement local, soit sur une machine virtuelle, vous pouvez :To work around this limitation, when you back up a database from either SQL Server in an on-premises environment or in a virtual machine, you can:

    • sauvegarder sur DISK au lieu de sauvegarder jusqu’à URL ;Back up to DISK instead of backing up to URL.
    • charger les fichiers de sauvegarde sur le stockage d’objets blob ;Upload the backup files to Blob storage.
    • Restaurer dans l’instance gérée SQL.Restore into SQL Managed Instance.

    La commande Restore dans une instance gérée SQL prend en charge des tailles d’objet blob plus volumineuses dans les fichiers de sauvegarde, car un autre type d’objet blob est utilisé pour le stockage des fichiers de sauvegarde chargés.The Restore command in SQL Managed Instance supports bigger blob sizes in the backup files because a different blob type is used for storage of the uploaded backup files.

Pour plus d’informations sur les sauvegardes à l’aide de T-SQL, consultez BACKUP.For information about backups using T-SQL, see BACKUP.

SécuritéSecurity

AuditAuditing

Les principales différences entre l’audit dans Microsoft Azure SQL et dans SQL Server sont les suivantes :The key differences between auditing in Microsoft Azure SQL and in SQL Server are:

  • Avec SQL Managed Instance, l’audit fonctionne au niveau du serveur.With SQL Managed Instance, auditing works at the server level. Les fichiers journaux .xel sont stockés dans le stockage Blob Azure.The .xel log files are stored in Azure Blob storage.
  • Dans Azure SQL Database, l’audit fonctionne au niveau de la base de données.With Azure SQL Database, auditing works at the database level. Les fichiers journaux .xel sont stockés dans le stockage Blob Azure.The .xel log files are stored in Azure Blob storage.
  • Avec SQL Server, en local ou sur machines virtuelles, l’audit s’effectue au niveau serveur.With SQL Server, on-premises or in virtual machines, auditing works at the server level. Les événements sont stockés dans le système de fichiers ou dans les journaux des événements Windows.Events are stored on file system or Windows event logs.

L’audit XEvent dans SQL Managed Instance prend en charge les cibles de Stockage Blob Azure.XEvent auditing in SQL Managed Instance supports Azure Blob storage targets. Les journaux de fichiers et de Windows ne sont pas pris en charge.File and Windows logs aren't supported.

Les principales différences de syntaxe CREATE AUDIT pour l’audit du Stockage Blob Azure sont :The key differences in the CREATE AUDIT syntax for auditing to Azure Blob storage are:

  • Une nouvelle syntaxe TO URL est fournie, vous pouvez l’utiliser pour spécifier l’URL du conteneur de stockage Blob Azure où les fichiers .xel sont placés.A new syntax TO URL is provided that you can use to specify the URL of the Azure Blob storage container where the .xel files are placed.
  • La syntaxe TO FILE n’est pas prise en charge, car SQL Managed Instance ne peut pas accéder à des partages de fichiers Windows.The syntax TO FILE isn't supported because SQL Managed Instance can't access Windows file shares.

Pour plus d'informations, consultez les pages suivantes :For more information, see:

CertificatsCertificates

SQL Managed Instance ne pouvant pas accéder à des partages de fichiers et à des dossiers Windows, les contraintes suivantes s’appliquent :SQL Managed Instance can't access file shares and Windows folders, so the following constraints apply:

  • le fichier CREATE FROM/BACKUP TO n’est pas pris en charge pour les certificats ;The CREATE FROM/BACKUP TO file isn't supported for certificates.
  • le certificat CREATE/BACKUP de FILE/ASSEMBLY n’est pas pris en charge ;The CREATE/BACKUP certificate from FILE/ASSEMBLY isn't supported. Les fichiers de clés privés ne peuvent pas être utilisésPrivate key files can't be used.

Consultez CREATE CERTIFICATE et BACKUP CERTIFICATE.See CREATE CERTIFICATE and BACKUP CERTIFICATE.

Solution de contournement : Au lieu de créer une sauvegarde du certificat et de restaurer la sauvegarde, obtenez le contenu binaire du certificat et la clé privée, stockez-les en tant que fichier .sql et créez à partir du binaire :Workaround: Instead of creating backup of certificate and restoring the backup, get the certificate binary content and private key, store it as .sql file, and create from binary:

CREATE CERTIFICATE  
   FROM BINARY = asn_encoded_certificate
WITH PRIVATE KEY (<private_key_options>)

Informations d'identificationCredential

Seuls Azure Key Vault et les identités SHARED ACCESS SIGNATURE sont pris en charge.Only Azure Key Vault and SHARED ACCESS SIGNATURE identities are supported. Les utilisateurs de Windows ne sont pas pris en charge.Windows users aren't supported.

Consultez CREATE CREDENTIAL et ALTER CREDENTIAL.See CREATE CREDENTIAL and ALTER CREDENTIAL.

Fournisseurs de chiffrementCryptographic providers

SQL Managed Instance ne pouvant pas accéder aux fichiers, vous ne pouvez pas créer de fournisseur de chiffrement :SQL Managed Instance can't access files, so cryptographic providers can't be created:

Connexions et utilisateursLogins and users

  • Les connexions SQL créées à l’aide de FROM CERTIFICATE, FROM ASYMMETRIC KEY et FROM SID sont prises en charge.SQL logins created by using FROM CERTIFICATE, FROM ASYMMETRIC KEY, and FROM SID are supported. Consultez CREATE LOGIN.See CREATE LOGIN.

  • Les principaux de serveur (connexions) Azure Active Directory (Azure AD) créés avec la syntaxe CREATE LOGIN ou la syntaxe CREATE USER FROM LOGIN [Azure AD Login] sont pris en charge.Azure Active Directory (Azure AD) server principals (logins) created with the CREATE LOGIN syntax or the CREATE USER FROM LOGIN [Azure AD Login] syntax are supported. Ces connexions sont créées au niveau du serveur.These logins are created at the server level.

    SQL Managed Instance prend en charge les principaux de base de données Azure AD avec la syntaxe CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER.SQL Managed Instance supports Azure AD database principals with the syntax CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER. Cette fonctionnalité est également appelée « utilisateurs de base de données autonome Azure AD ».This feature is also known as Azure AD contained database users.

  • Les connexions Windows créées avec la syntaxe CREATE LOGIN ... FROM WINDOWS ne sont pas prises en charge.Windows logins created with the CREATE LOGIN ... FROM WINDOWS syntax aren't supported. Utilisez des utilisateurs et des connexions Azure Active Directory.Use Azure Active Directory logins and users.

  • L’utilisateur Azure AD qui a créé l’instance dispose de privilèges d’administrateur illimités.The Azure AD user who created the instance has unrestricted admin privileges.

  • Les utilisateurs au niveau de la base de données Azure AD non-administrateurs peuvent être créés à l’aide de la syntaxe CREATE USER ... FROM EXTERNAL PROVIDER.Non-administrator Azure AD database-level users can be created by using the CREATE USER ... FROM EXTERNAL PROVIDER syntax. Consultez CREATE USER ... FROM EXTERNAL PROVIDER.See CREATE USER ... FROM EXTERNAL PROVIDER.

  • Les principaux de serveur (connexions) Azure AD prennent en charge les fonctionnalités SQL dans une seule instance gérée SQL.Azure AD server principals (logins) support SQL features within one SQL Managed Instance only. Les fonctionnalités nécessitant une interaction entre les instances, peu importe qu’elles se trouvent au sein du même locataire Azure AD ou de locataires différents, ne sont pas prises en charge pour les utilisateurs Azure AD.Features that require cross-instance interaction, no matter whether they're within the same Azure AD tenant or different tenants, aren't supported for Azure AD users. Il s’agit de fonctionnalités telles que :Examples of such features are:

    • la réplication transactionnelle SQL ;SQL transactional replication.
    • le serveur de liaisons.Link server.
  • La définition d’une connexion Azure AD mappée à un groupe Azure AD en tant que propriétaire de base de données n’est pas prise en charge.Setting an Azure AD login mapped to an Azure AD group as the database owner isn't supported.

  • L’emprunt d’identité des principaux au niveau du serveur Azure AD à l’aide d’autres principaux Azure AD est pris en charge, par exemple avec la clause EXECUTE AS.Impersonation of Azure AD server-level principals by using other Azure AD principals is supported, such as the EXECUTE AS clause. Les limitations EXECUTE AS sont les suivantes :EXECUTE AS limitations are:

    • EXECUTE AS USER n’est pas pris en charge pour les utilisateurs Azure AD quand le nom diffère du nom de connexion.EXECUTE AS USER isn't supported for Azure AD users when the name differs from the login name. Par exemple, quand l’utilisateur est créé par le biais de la syntaxe CREATE USER [myAadUser] FROM LOGIN [john@contoso.com] et que l’emprunt d’identité est tenté par le biais de EXEC AS USER = myAadUser.An example is when the user is created through the syntax CREATE USER [myAadUser] FROM LOGIN [john@contoso.com] and impersonation is attempted through EXEC AS USER = myAadUser. Quand vous créez un USER à partir d’un principal de serveur (connexion) Azure AD, spécifiez le même user_name que le login_name à partir de LOGIN.When you create a USER from an Azure AD server principal (login), specify the user_name as the same login_name from LOGIN.

    • Seuls les principaux au niveau de l’instance SQL Server (connexions) faisant partie du rôle sysadmin peuvent exécuter les opérations suivantes qui ciblent les principaux Azure AD :Only the SQL Server-level principals (logins) that are part of the sysadmin role can execute the following operations that target Azure AD principals:

      • EXECUTE AS USEREXECUTE AS USER
      • EXECUTE AS LOGINEXECUTE AS LOGIN
  • L’exportation/importation de bases de données à l’aide de fichiers bacpac est prise en charge pour les utilisateurs Azure AD dans SQL Managed Instance avec SSMS v18.4 ou version ultérieure et SQLPackage.exe.Database export/import using bacpac files are supported for Azure AD users in SQL Managed Instance using either SSMS V18.4 or later, or SQLPackage.exe.

    • Les configurations suivantes sont prises en charge avec le fichier de base de données bacpac :The following configurations are supported using database bacpac file:
      • Exporter/importer une base de données entre différentes Managed Instance dans le même domaine Azure AD.Export/import a database between different manage instances within the same Azure AD domain.
      • Exporter une base de données à partir de SQL Managed Instance et l’importer dans SQL Database au sein du même domaine Azure AD.Export a database from SQL Managed Instance and import to SQL Database within the same Azure AD domain.
      • Exporter une base de données à partir de SQL Database et l’importer dans SQL Managed Instance au sein du même domaine Azure AD.Export a database from SQL Database and import to SQL Managed Instance within the same Azure AD domain.
      • Exporter une base de données à partir de SQL Managed Instance et l’importer dans SQL Server (version 2012 ou ultérieure).Export a database from SQL Managed Instance and import to SQL Server (version 2012 or later).
        • Dans cette configuration, tous les utilisateurs Azure AD sont créés en tant que principaux (utilisateurs) de base de données SQL Server sans connexions.In this configuration all Azure AD users are created as SQL Server database principals (users) without logins. Les utilisateurs sont répertoriés sous le type SQL et sont visibles sous le type SQL_USER dans sys.database_principals.The type of users are listed as SQL and are visible as SQL_USER in sys.database_principals). Leurs autorisations et leurs rôles restent dans les métadonnées de la base de données SQL Server et peuvent être utilisés pour l’emprunt d’identité.Their permissions and roles remain in the SQL Server database metadata and can be used for impersonation. Toutefois, ils ne peuvent pas être utilisés pour accéder et se connecter à SQL Server à l’aide de leurs informations d’identification.However, they cannot be used to access and log in to the SQL Server using their credentials.
  • Seule la connexion du principal au niveau du serveur, qui est créée par le processus de provisionnement de SQL Managed Instance, les membres des rôles de serveur, tels que securityadmin ou sysadmin, ou d’autres connexions disposant de l’autorisation ALTER ANY LOGIN au niveau du serveur peuvent créer les principaux de serveur (connexions) Azure AD dans la base de données master pour SQL Managed Instance.Only the server-level principal login, which is created by the SQL Managed Instance provisioning process, members of the server roles, such as securityadmin or sysadmin, or other logins with ALTER ANY LOGIN permission at the server level can create Azure AD server principals (logins) in the master database for SQL Managed Instance.

  • Si la connexion est un principal SQL, seules les connexions faisant partie du rôle sysadmin peuvent utiliser la commande create pour créer les connexions d’un compte Azure AD.If the login is a SQL principal, only logins that are part of the sysadmin role can use the create command to create logins for an Azure AD account.

  • La connexion Azure AD doit être membre d’un compte Azure AD dans le même annuaire que celui utilisé pour Azure SQL Managed Instance.The Azure AD login must be a member of an Azure AD within the same directory that's used for Azure SQL Managed Instance.

  • Les principaux de serveur (connexions) Azure AD sont visibles dans l’Explorateur d’objets à compter de SQL Server Management Studio 18.0 préversion 5.Azure AD server principals (logins) are visible in Object Explorer starting with SQL Server Management Studio 18.0 preview 5.

  • Le chevauchement des principaux de serveur (connexions) Azure AD avec un compte d’administrateur Azure AD est autorisé.Overlapping Azure AD server principals (logins) with an Azure AD admin account is allowed. Les principaux de serveur (connexions) Azure AD sont prioritaires par rapport à l’Administrateur Azure AD lorsque vous résolvez le principal et que vous appliquez des autorisations à SQL Managed Instance.Azure AD server principals (logins) take precedence over the Azure AD admin when you resolve the principal and apply permissions to SQL Managed Instance.

  • Lors de l’authentification, la séquence suivante est appliquée pour résoudre le principal d’authentification :During authentication, the following sequence is applied to resolve the authenticating principal:

    1. Si le compte Azure AD existe en tant que mappage direct au principal de serveur (connexion) Azure AD, qui est présent dans sys.server_principals en tant que type « E », l’accès est accordé et les autorisations du principal de serveur (connexion) Azure AD sont appliquées.If the Azure AD account exists as directly mapped to the Azure AD server principal (login), which is present in sys.server_principals as type "E," grant access and apply permissions of the Azure AD server principal (login).
    2. Si le compte Azure AD est membre d’un groupe Azure AD mappé au principal de serveur (connexion) Azure AD, qui est présent dans sys.server_principals en tant que type « X », l’accès est accordé et les autorisations de la connexion du groupe Azure AD sont appliquées.If the Azure AD account is a member of an Azure AD group that's mapped to the Azure AD server principal (login), which is present in sys.server_principals as type "X," grant access and apply permissions of the Azure AD group login.
    3. Si le compte Azure AD est un administrateur Azure AD spécial configuré dans le portail pour SQL Managed Instance, et qui n’existe pas dans les vues système de SQL Managed Instance, les autorisations fixes spéciales de l’administrateur Azure AD pour SQL Managed Instance (mode hérité) sont appliquées.If the Azure AD account is a special portal-configured Azure AD admin for SQL Managed Instance, which doesn't exist in SQL Managed Instance system views, apply special fixed permissions of the Azure AD admin for SQL Managed Instance (legacy mode).
    4. Si le compte Azure AD existe en tant que mappage direct à un utilisateur Azure AD dans une base de données, qui est présent dans sys.database_principals en tant que type « E », l’accès est accordé et les autorisations de l’utilisateur de base de données Azure AD sont appliquées.If the Azure AD account exists as directly mapped to an Azure AD user in a database, which is present in sys.database_principals as type "E," grant access and apply permissions of the Azure AD database user.
    5. Si le compte Azure AD est membre d’un groupe Azure AD mappé à un utilisateur Azure AD dans une base de données, qui est présent dans sys.database_principals en tant que type « X », l’accès est accordé et les autorisations de la connexion du groupe Azure AD sont appliquées.If the Azure AD account is a member of an Azure AD group that's mapped to an Azure AD user in a database, which is present in sys.database_principals as type "X," grant access and apply permissions of the Azure AD group login.
    6. S’il existe une connexion Azure AD mappée à un compte d’utilisateur Azure AD ou à un compte de groupe Azure AD, qui se résout sur l’utilisateur qui s’authentifie, toutes les autorisations de cette connexion Azure AD sont appliquées.If there's an Azure AD login mapped to either an Azure AD user account or an Azure AD group account, which resolves to the user who's authenticating, all permissions from this Azure AD login are applied.

Clé de service et clé principale de serviceService key and service master key

ConfigurationConfiguration

Extension du pool de mémoires tamponsBuffer pool extension

ClassementCollation

Le classement d’instance par défaut est SQL_Latin1_General_CP1_CI_AS et peut être spécifié comme paramètre de création.The default instance collation is SQL_Latin1_General_CP1_CI_AS and can be specified as a creation parameter. Consultez Classements.See Collations.

Niveaux de compatibilitéCompatibility levels

  • Les niveaux de compatibilité pris en charge sont 100, 110, 120, 130, 140 et 150.Supported compatibility levels are 100, 110, 120, 130, 140 and 150.
  • Les niveaux de compatibilité inférieurs à 100 ne sont pas pris en charge.Compatibility levels below 100 aren't supported.
  • Le niveau de compatibilité par défaut est de 140 pour les nouvelles bases de données.The default compatibility level for new databases is 140. Pour les bases de données restaurées, le niveau de compatibilité reste inchangé s’il était de 100 et plus.For restored databases, the compatibility level remains unchanged if it was 100 and above.

Consultez Niveau de compatibilité ALTER TABLE (Transact-SQL).See ALTER DATABASE Compatibility Level.

Mise en miroir de bases de donnéesDatabase mirroring

La mise en miroir de bases de données n’est pas prise en charge.Database mirroring isn't supported.

  • Les options ALTER DATABASE SET PARTNER et SET WITNESS ne sont pas prises en charge.ALTER DATABASE SET PARTNER and SET WITNESS options aren't supported.
  • CREATE ENDPOINT … FOR DATABASE_MIRRORING n’est pas pris en charge.CREATE ENDPOINT … FOR DATABASE_MIRRORING isn't supported.

Pour plus d’informations, consultez ALTER DATABASE SET PARTNER AND SET WITNESS et CREATE ENDPOINT … FOR DATABASE_MIRRORING.For more information, see ALTER DATABASE SET PARTNER and SET WITNESS and CREATE ENDPOINT … FOR DATABASE_MIRRORING.

Options de la base de donnéesDatabase options

  • Les fichiers journaux multiples ne sont pas pris en charge.Multiple log files aren't supported.
  • Les objets en mémoire ne sont pas pris en charge dans le niveau de service Usage général.In-memory objects aren't supported in the General Purpose service tier.
  • Il existe une limite de 280 fichiers par instance Usage général, ce qui implique un maximum de 280 fichiers par base de données.There's a limit of 280 files per General Purpose instance, which implies a maximum of 280 files per database. Les fichiers de données et de journaux du niveau Usage général sont tous les deux comptabilisés dans cette limite.Both data and log files in the General Purpose tier are counted toward this limit. Le niveau Critique pour l’entreprise prend en charge 32 767 fichiers par base de données.The Business Critical tier supports 32,767 files per database.
  • La base de données ne peut pas contenir de groupes de fichiers qui contiennent des données flux de fichier.The database can't contain filegroups that contain filestream data. La restauration échoue si le fichier.bak contient des données FILESTREAM.Restore fails if .bak contains FILESTREAM data.
  • Chaque fichier est placé dans Stockage Blob Azure.Every file is placed in Azure Blob storage. L’E/S et le débit par fichier dépendent de la taille de chaque fichier.IO and throughput per file depend on the size of each individual file.

CREATE DATABASE, instructionCREATE DATABASE statement

Les limites suivantes s’appliquent à CREATE DATABASE :The following limitations apply to CREATE DATABASE:

  • Les fichiers et les groupes de fichiers ne peuvent pas être définis.Files and filegroups can't be defined.

  • L’option CONTAINMENT n’est pas prise en charge.The CONTAINMENT option isn't supported.

  • Les options WITH ne sont pas prises en charge.WITH options aren't supported.

    Conseil

    Comme solution de contournement, utilisez ALTER DATABASE après CREATE DATABASE pour définir les options de la base de données de manière à ajouter des fichiers ou pour définir l’autonomie.As a workaround, use ALTER DATABASE after CREATE DATABASE to set database options to add files or to set containment.

  • L’option FOR ATTACH n’est pas prise en charge.The FOR ATTACH option isn't supported.

  • L’option AS SNAPSHOT OF n’est pas prise en charge.The AS SNAPSHOT OF option isn't supported.

Pour plus d’informations, consultez CREATE DATABASE.For more information, see CREATE DATABASE.

ALTER DATABASE, instructionALTER DATABASE statement

Certaines propriétés de fichiers ne peuvent pas être définies ou modifiées :Some file properties can't be set or changed:

  • Un chemin de fichier ne peut pas être spécifié dans l’instruction T-SQL ALTER DATABASE ADD FILE (FILENAME='path').A file path can't be specified in the ALTER DATABASE ADD FILE (FILENAME='path') T-SQL statement. Enlevez FILENAME du script car SQL Managed Instance place les fichiers automatiquement.Remove FILENAME from the script because SQL Managed Instance automatically places the files.
  • Un nom de fichier ne peut pas être modifié à l’aide de l’instruction ALTER DATABASE.A file name can't be changed by using the ALTER DATABASE statement.

Les options suivantes sont définies par défaut et ne peuvent pas être modifiées :The following options are set by default and can't be changed:

  • MULTI_USER
  • ENABLE_BROKER ON
  • AUTO_CLOSE OFF

Les options suivantes ne peuvent pas être modifiées :The following options can't be modified:

  • AUTO_CLOSE
  • AUTOMATIC_TUNING(CREATE_INDEX=ON|OFF)
  • AUTOMATIC_TUNING(DROP_INDEX=ON|OFF)
  • DISABLE_BROKER
  • EMERGENCY
  • ENABLE_BROKER
  • FILESTREAM
  • HADR
  • NEW_BROKER
  • OFFLINE
  • PAGE_VERIFY
  • PARTNER
  • READ_ONLY
  • RECOVERY BULK_LOGGED
  • RECOVERY_SIMPLE
  • REMOTE_DATA_ARCHIVE
  • RESTRICTED_USER
  • SINGLE_USER
  • WITNESS

Pour en savoir plus, consultez ALTER DATABASE.For more information, see ALTER DATABASE.

SQL Server AgentSQL Server Agent

  • L’activation et la désactivation de SQL Server Agent ne sont actuellement pas prises en charge dans SQL Managed Instance.Enabling and disabling SQL Server Agent is currently not supported in SQL Managed Instance. L’Agent SQL est toujours en cours d’exécution.SQL Agent is always running.
  • Les paramètres de SQL Server Agent sont en lecture seule.SQL Server Agent settings are read only. La procédure sp_set_agent_properties n’est pas prise en charge dans SQL Managed Instance.The procedure sp_set_agent_properties isn't supported in SQL Managed Instance.
  • travauxJobs
    • Les étapes de travail T-SQL sont prises en charge.T-SQL job steps are supported.
    • Les travaux de réplication suivants sont pris en charge :The following replication jobs are supported:
      • Lecteur de journaux de transactionsTransaction-log reader
      • InstantanéSnapshot
      • Serveur de distributionDistributor
    • Les étapes de travail SSIS sont prises en charge.SSIS job steps are supported.
    • Les autres types d’étapes de travail ne sont pas pris en charge actuellement :Other types of job steps aren't currently supported:
      • L’étape de travail de réplication de fusion n’est pas prise en charge.The merge replication job step isn't supported.
      • L’agent de lecture de la file d’attente n’est pas pris en charge.Queue Reader isn't supported.
      • L’interpréteur de commandes n’est pas encore pris en charge.Command shell isn't yet supported.
    • SQL Managed Instance ne peut pas accéder à des ressources externes, par exemple des partages réseau via robocopy.SQL Managed Instance can't access external resources, for example, network shares via robocopy.
    • SQL Server Analysis Services n’est pas pris en charge.SQL Server Analysis Services isn't supported.
  • Les notifications sont partiellement prises en charge.Notifications are partially supported.
  • Les notifications par e-mail sont prises en charge bien qu’elles nécessitent de votre part la configuration d’un profil Database Mail.Email notification is supported, although it requires that you configure a Database Mail profile. SQL Server Agent ne peut utiliser qu’un seul profil Database Mail, et il doit être appelé AzureManagedInstance_dbmail_profile.SQL Server Agent can use only one Database Mail profile, and it must be called AzureManagedInstance_dbmail_profile.
    • Le récepteur d’appel n’est pas pris en charge.Pager isn't supported.
    • NetSend n’est pas pris en charge.NetSend isn't supported.
    • Les alertes ne sont pas encore prises en charge.Alerts aren't yet supported.
    • Les proxies ne sont pas pris en charge.Proxies aren't supported.
  • EventLog n’est pas pris en charge.EventLog isn't supported.

Les fonctionnalités suivantes de l’agent SQL ne sont pas prises en charge actuellement :The following SQL Agent features currently aren't supported:

  • ProxiesProxies
  • Planification de travaux sur une UC inactiveScheduling jobs on an idle CPU
  • Activation ou désactivation d’un AgentEnabling or disabling an Agent
  • AlertesAlerts

Pour plus d’informations sur SQL Server Agent, consultez SQL Server Agent.For information about SQL Server Agent, see SQL Server Agent.

TablesTables

Les types de tables suivantes ne sont pas prises en charge :The following table types aren't supported:

Pour plus d’informations sur la façon de créer et de modifier des tables, consultez CREATE TABLE et ALTER TABLE.For information about how to create and alter tables, see CREATE TABLE and ALTER TABLE.

FonctionnalitésFunctionalities

Bulk insert/OPENROWSETBulk insert / OPENROWSET

SQL Managed Instance ne pouvant pas accéder à des partages de fichiers et à des dossiers Windows, les fichiers doivent être importés à partir du stockage Blob Azure :SQL Managed Instance can't access file shares and Windows folders, so the files must be imported from Azure Blob storage:

  • DATASOURCE est requis dans la commande BULK INSERT lors de l’importation des fichiers depuis le Stockage Blob Azure.DATASOURCE is required in the BULK INSERT command while you import files from Azure Blob storage. Consultez BULK INSERT.See BULK INSERT.
  • DATASOURCE est nécessaire dans la fonction OPENROWSET lorsque vous lisez le contenu d’un fichier à partir du stockage Blob Azure.DATASOURCE is required in the OPENROWSET function when you read the content of a file from Azure Blob storage. Consultez OPENROWSET.See OPENROWSET.
  • OPENROWSET peut être utilisé pour lire des données à partir d’Azure SQL Database, Azure SQL Managed Instance, ou d’instances SQL Server.OPENROWSET can be used to read data from Azure SQL Database, Azure SQL Managed Instance, or SQL Server instances. Les autres sources, telles que les bases de données Oracle ou les fichiers Excel, ne sont pas prises en charge.Other sources such as Oracle databases or Excel files are not supported.

CLRCLR

SQL Managed Instance ne pouvant pas accéder à des partages de fichiers et à des dossiers Windows, les contraintes suivantes s’appliquent :A SQL Managed Instance can't access file shares and Windows folders, so the following constraints apply:

Database Mail (db_mail)Database Mail (db_mail)

  • sp_send_dbmail ne peut pas envoyer de pièces jointes à l’aide du paramètre @file_attachments.sp_send_dbmail cannot send attachments using @file_attachments parameter. Le système de fichiers local ainsi que les partages externes ou le Stockage Blob Azure ne sont pas accessibles avec cette procédure.Local file system and external shares or Azure Blob Storage are not accessible from this procedure.
  • Consultez les problèmes connus liés au paramètre @query et à l’authentification.See the known issues related to @query parameter and authentication.

DBCCDBCC

Les instructions DBCC non documentées qui sont activées dans SQL Server ne sont pas prises en charge dans SQL Managed Instance.Undocumented DBCC statements that are enabled in SQL Server aren't supported in SQL Managed Instance.

  • Seuls un nombre limité d’indicateurs de trace globaux sont pris en charge.Only a limited number of Global Trace flags are supported. Les Trace flags de session ne sont pas pris en charge.Session-level Trace flags aren't supported. Consultez les indicateurs de trace.See Trace flags.
  • DBCC TRACEOFF et DBCC TRACEON fonctionnent avec le nombre limité d’indicateurs de trace globaux.DBCC TRACEOFF and DBCC TRACEON work with the limited number of global trace-flags.
  • DBCC CHECKDB ne peut pas être utilisé avec les options REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST et REPAIR_REBUILD, car la base de données ne peut pas être définie sur le mode SINGLE_USER. Consultez l’article sur les différences avec ALTER DATABASE.DBCC CHECKDB with options REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST, and REPAIR_REBUILD cannot be used because database cannot be set in SINGLE_USER mode - see ALTER DATABASE differences. L’endommagement potentiel de la base de données est géré par l’équipe de support Azure.Potential database corruption is handled by the Azure support team. Contactez le support Azure si vous constatez des signes de corruption de la base de données.Contact Azure support if there is any indication of database corruption.

Transactions distribuéesDistributed transactions

La prise en charge partielle des transactions distribuées est actuellement en préversion publique.Partial support for distributed transactions is currently in public preview. Les scénarios pris en charge sont les suivants :Supported scenarios are:

  • Transactions où les participants sont uniquement des instances Azure SQL Managed Instance qui font partie du groupe d’approbations de serveurs.Transactions where participants are only Azure SQL Managed Instances that are part of Server trust group.
  • Transactions lancées à partir de .NET (classe TransactionScope) et de Transact-SQL.Transactions initiated from .NET (TransactionScope class) and Transact-SQL.

Actuellement, Azure SQL Managed Instance ne prend pas en charge d’autres scénarios qui sont régulièrement pris en charge par MSDTC, localement ou dans des machines virtuelles Azure.Azure SQL Managed Instance currently does not support other scenarios which are regularly supported by MSDTC on-premises or in Azure Virtual Machines.

Événements étendusExtended Events

Certaines cibles propres à Windows pour les événements étendus (XEvent) ne sont pas prises en charge :Some Windows-specific targets for Extended Events (XEvents) aren't supported:

  • Le etw_classic_sync cible n’est pas pris en charge.The etw_classic_sync target isn't supported. Stockez les fichiers .xel dans le stockage Blob Azure.Store .xel files in Azure Blob storage. Consultez etw_classic_sync target.See etw_classic_sync target.
  • Le event_file cible n’est pas pris en charge.The event_file target isn't supported. Stockez les fichiers .xel dans le stockage Blob Azure.Store .xel files in Azure Blob storage. Consultez event_file target.See event_file target.

Bibliothèques externesExternal libraries

Les bibliothèques externes R et Python dans la base de données sont prises en charge dans la préversion publique limitée.In-database R and Python external libraries are supported in limited public preview. Consultez Machine Learning Services dans Azure SQL Managed Instance (préversion).See Machine Learning Services in Azure SQL Managed Instance (preview).

Flux de fichier et FiletableFilestream and FileTable

  • Les données flux de fichier ne sont pas prises en charge.Filestream data isn't supported.
  • La base de données ne peut pas contenir de groupes de fichiers avec des données FILESTREAM.The database can't contain filegroups with FILESTREAM data.
  • FILETABLE n’est pas pris en charge.FILETABLE isn't supported.
  • Les tables ne peuvent pas avoir de types FILESTREAM.Tables can't have FILESTREAM types.
  • Les fonctions suivantes ne sont pas prises en charge :The following functions aren't supported:
    • GetPathLocator()
    • GET_FILESTREAM_TRANSACTION_CONTEXT()
    • PathName()
    • GetFileNamespacePat)
    • FileTableRootPath()

Pour plus d’informations, consultez FILESTREAM et FileTables.For more information, see FILESTREAM and FileTables.

La recherche sémantique n’est pas prise en charge.Semantic Search isn't supported.

Serveurs liésLinked servers

Les serveurs liés dans SQL Managed Instance prennent en charge un nombre limité de cibles :Linked servers in SQL Managed Instance support a limited number of targets:

  • Les cibles prises en charge sont SQL Managed Instance, SQL Database, Azure Synapse SQL et les instances SQL Server.Supported targets are SQL Managed Instance, SQL Database, Azure Synapse SQL and SQL Server instances.
  • Les serveurs liés ne prennent pas en charge les transactions accessibles en écriture distribuées (MS DTC).Linked servers don't support distributed writable transactions (MS DTC).
  • Les cibles qui ne sont pas prises en charge sont des fichiers, Analysis Services et d’autres SGBDR.Targets that aren't supported are files, Analysis Services, and other RDBMS. Essayez d’utiliser l’importation CSV native à partir de Stockage Blob Azure à l’aide de BULK INSERT ou OPENROWSET comme alternative pour l’importation de fichiers.Try to use native CSV import from Azure Blob Storage using BULK INSERT or OPENROWSET as an alternative for file import.

Opérations :Operations:

  • Les transactions d’écriture entre instances ne sont pas prises en charge.Cross-instance write transactions aren't supported.
  • sp_dropserver est pris en charge pour supprimer un serveur lié.sp_dropserver is supported for dropping a linked server. Consultez sp_dropserver.See sp_dropserver.
  • La fonction OPENROWSET peut être utilisée pour exécuter des requêtes uniquement sur des instances SQL Server.The OPENROWSET function can be used to execute queries only on SQL Server instances. Elles peuvent être managées, locales ou dans des machines virtuelles.They can be either managed, on-premises, or in virtual machines. Consultez OPENROWSET.See OPENROWSET.
  • La fonction OPENDATASOURCE peut être utilisée pour exécuter des requêtes uniquement sur des instances SQL Server.The OPENDATASOURCE function can be used to execute queries only on SQL Server instances. Elles peuvent être managées, locales ou dans des machines virtuelles.They can be either managed, on-premises, or in virtual machines. Seules les valeurs SQLNCLI, SQLNCLI11 et SQLOLEDB sont prises en charge en tant que fournisseur.Only the SQLNCLI, SQLNCLI11, and SQLOLEDB values are supported as a provider. par exemple SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2012.HumanResources.Employee.An example is SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2012.HumanResources.Employee. Consultez OPENDATASOURCE.See OPENDATASOURCE.
  • Les serveurs liés ne peuvent pas être utilisés pour lire des fichiers (Excel, CSV) à partir des partages réseau.Linked servers cannot be used to read files (Excel, CSV) from the network shares. Essayez d’utiliser BULK INSERT ou OPENROWSET qui lit les fichiers CSV à partir de Stockage Blob Azure.Try to use BULK INSERT or OPENROWSET that reads CSV files from Azure Blob Storage. Suivez ces requêtes sur l’élément de commentaires de SQL Managed Instance|Track this requests on SQL Managed Instance Feedback item|

PolyBasePolyBase

Les tables externes qui référencent les fichiers dans HDFS ou le stockage Blob Azure ne sont pas prises en charge.External tables that reference the files in HDFS or Azure Blob storage aren't supported. Pour plus d’informations sur PolyBase, consultez PolyBase.For information about PolyBase, see PolyBase.

RéplicationReplication

  • Les types de réplication d’instantané et bidirectionnelle sont pris en charge.Snapshot and Bi-directional replication types are supported. La réplication de fusion, la réplication d’égal à égal et les abonnements modifiables ne sont pas pris en charge.Merge replication, Peer-to-peer replication, and updatable subscriptions are not supported.
  • La réplication transactionnelle est disponible en préversion publique dans SQL Managed Instance sous certaines contraintes :Transactional Replication is available for public preview on SQL Managed Instance with some constraints:
    • Tous les types de participants à la réplication (serveur de publication, serveur de distribution, abonné d’extraction et abonné de type push) peuvent être placés sur SQL Managed Instance, mais le serveur de publication et le serveur de distribution doivent être tous deux dans le cloud ou locaux.All types of replication participants (Publisher, Distributor, Pull Subscriber, and Push Subscriber) can be placed on SQL Managed Instance, but the publisher and the distributor must be either both in the cloud or both on-premises.
    • SQL Managed Instance peut communiquer avec les versions récentes de SQL Server.SQL Managed Instance can communicate with the recent versions of SQL Server. Consultez la matrice des versions prises en charge pour plus d’informations.See the supported versions matrix for more information.
    • La réplication transactionnelle présente des exigences de mise en réseau supplémentaires.Transactional Replication has some additional networking requirements.

Pour plus d’informations sur la configuration de la réplication transactionnelle, consultez les tutoriels suivants :For more information about configuring transactional replication, see the following tutorials:

L’instruction RESTORERESTORE statement

  • Syntaxe prise en charge :Supported syntax:
    • RESTORE DATABASE
    • RESTORE FILELISTONLY ONLY
    • RESTORE HEADER ONLY
    • RESTORE LABELONLY ONLY
    • RESTORE VERIFYONLY ONLY
  • Syntaxe non prise en charge :Unsupported syntax:
    • RESTORE LOG ONLY
    • RESTORE REWINDONLY ONLY
  • Source :Source:
    • FROM URL (Stockage Blob Azure) est l’unique option prise en charge.FROM URL (Azure Blob storage) is the only supported option.
    • L’unité de sauvegarde/FROM DISK/TAPE n’est pas prise en charge.FROM DISK/TAPE/backup device isn't supported.
    • Les jeux de sauvegarde ne sont pas pris en charge.Backup sets aren't supported.
  • Les options WITH ne sont pas prises en charge.WITH options aren't supported. Les tentatives de restauration incluant WITH telles que DIFFERENTIAL, STATS, REPLACE, etc. échouent.Restore attempts including WITH like DIFFERENTIAL, STATS, REPLACE, etc., will fail.
  • ASYNC RESTORE: la restauration continue même si la connexion cliente s’arrête.ASYNC RESTORE: Restore continues even if the client connection breaks. Si votre connexion est interrompue, vous pouvez vérifier l’affichage sys.dm_operation_status pour l’état d’une opération de restauration, et pour la création et la suppression d’une base de données.If your connection is dropped, you can check the sys.dm_operation_status view for the status of a restore operation, and for a CREATE and DROP database. Consultez sys.dm_operation_status.See sys.dm_operation_status.

Les options de base de données suivantes sont fixées ou remplacées et ne peuvent pas être modifiées ultérieurement :The following database options are set or overridden and can't be changed later:

  • NEW_BROKER si le broker n’est pas activé dans le fichier .bak.NEW_BROKER if the broker isn't enabled in the .bak file.
  • ENABLE_BROKER si le broker n’est pas activé dans le fichier .bak.ENABLE_BROKER if the broker isn't enabled in the .bak file.
  • AUTO_CLOSE=OFF si une base de données dans le fichier .bak comprend AUTO_CLOSE=ON.AUTO_CLOSE=OFF if a database in the .bak file has AUTO_CLOSE=ON.
  • RECOVERY FULL si une base de données dans le fichier .bak a le mode de récupération SIMPLE ou BULK_LOGGED.RECOVERY FULL if a database in the .bak file has SIMPLE or BULK_LOGGED recovery mode.
  • Un groupe de fichiers à mémoire optimisée est ajouté et appelé XTP s’il n’était pas dans le fichier .bak source.A memory-optimized filegroup is added and called XTP if it wasn't in the source .bak file.
  • Tout groupe de fichiers à mémoire optimisée existant est renommé XTP.Any existing memory-optimized filegroup is renamed to XTP.
  • Les options SINGLE_USER et RESTRICTED_USER sont changées en MULTI_USER.SINGLE_USER and RESTRICTED_USER options are converted to MULTI_USER.

Limites :Limitations:

  • Les sauvegardes des bases de données endommagées peuvent être restaurées en fonction du type d’altération, mais les sauvegardes automatisées ne sont pas effectuées tant que la corruption n’est pas corrigée.Backups of the corrupted databases might be restored depending on the type of the corruption, but automated backups will not be taken until the corruption is fixed. Assurez-vous que vous exécutez DBCC CHECKDB sur l’instance gérée SQL source et utilisez la sauvegarde WITH CHECKSUM afin d’éviter ce problème.Make sure that you run DBCC CHECKDB on the source SQL Managed Instance and use backup WITH CHECKSUM in order to prevent this issue.
  • La restauration d’un fichier .BAK d’une base de données qui contient une limitation décrite dans ce document (par exemple, FILESTREAM ou des objets FILETABLE) ne peut pas être restaurée sur SQL Managed instance.Restore of .BAK file of a database that contains any limitation described in this document (for example, FILESTREAM or FILETABLE objects) cannot be restored on SQL Managed Instance.
  • Les fichiers .BAK qui contiennent plusieurs jeux de sauvegarde ne peuvent pas être restaurés..BAK files that contain multiple backup sets can't be restored.
  • Les fichiers .BAK qui contiennent plusieurs fichiers journaux ne peuvent pas être restaurés..BAK files that contain multiple log files can't be restored.
  • Les sauvegardes contenant des bases de données dont la taille excède 8 To, contenant des objets OLTP en mémoire actifs ou comprenant plus de 280 fichiers par instance ne peuvent pas être restaurées sur une instance d’usage général.Backups that contain databases bigger than 8 TB, active in-memory OLTP objects, or number of files that would exceed 280 files per instance can't be restored on a General Purpose instance.
  • Les sauvegardes contenant des bases de données dont la taille excède 4 To ou contenant des objets OLTP en mémoire dont la taille totale est supérieure à la taille spécifiée dans les limites de ressources ne peuvent pas être restaurées sur une instance critique pour l’entreprise.Backups that contain databases bigger than 4 TB or in-memory OLTP objects with the total size larger than the size described in resource limits cannot be restored on Business Critical instance. Pour plus d’informations sur les instructions de restauration, consultez Instructions RESTORE.For information about restore statements, see RESTORE statements.

Important

Les mêmes limitations s’appliquent à une opération de restauration dans le temps intégrée.The same limitations apply to built-in point-in-time restore operation. À titre d’exemple, une base de données à usage général dont la taille est supérieure à 4 To ne peut pas être restaurée sur une instance critique pour l’entreprise.As an example, General Purpose database greater than 4 TB cannot be restored on Business Critical instance. Une base de données critique pour l’entreprise comprenant des fichiers OLTP en mémoire ou plus 280 fichiers ne peut pas être restaurée sur une instance à usage général.Business Critical database with In-memory OLTP files or more than 280 files cannot be restored on General Purpose instance.

Service BrokerService broker

Le Service Broker entre instances n’est pas pris en charge :Cross-instance service broker isn't supported:

  • sys.routes: Comme prérequis, vous devez sélectionner l’adresse à partir de sys.routes.sys.routes: As a prerequisite, you must select the address from sys.routes. L’adresse doit être LOCAL sur tous les itinéraires.The address must be LOCAL on every route. Voir sys.routes.See sys.routes.
  • CREATE ROUTE: vous ne pouvez pas utiliser CREATE ROUTE avec ADDRESS si la valeur de celle-ci est différente de LOCAL.CREATE ROUTE: You can't use CREATE ROUTE with ADDRESS other than LOCAL. Voir CREATE ROUTE.See CREATE ROUTE.
  • ALTER ROUTE: vous ne pouvez pas utiliser ALTER ROUTE avec ADDRESS si la valeur de celle-ci est différente de LOCAL.ALTER ROUTE: You can't use ALTER ROUTE with ADDRESS other than LOCAL. Voir ALTER ROUTE.See ALTER ROUTE.

Procédures stockées, fonctions et déclencheursStored procedures, functions, and triggers

Fonctions et variables systèmeSystem functions and variables

Les variables, fonctions et vues suivantes retournent des résultats différents :The following variables, functions, and views return different results:

  • SERVERPROPERTY('EngineEdition') retourne la valeur 8.SERVERPROPERTY('EngineEdition') returns the value 8. Cette propriété identifie une instance gérée SQL de façon unique.This property uniquely identifies a SQL Managed Instance. Consultez SERVERPROPERTY.See SERVERPROPERTY.
  • SERVERPROPERTY('InstanceName') retourne la valeur NULL, car le concept d’instance tel qu’il existe pour SQL Server ne s’applique pas à une instance gérée SQL.SERVERPROPERTY('InstanceName') returns NULL because the concept of instance as it exists for SQL Server doesn't apply to SQL Managed Instance. Consultez SERVERPROPERTY(« InstanceName »).See SERVERPROPERTY('InstanceName').
  • @@SERVERNAME retourne un nom DNS « connectable » complet, par exemple, my-managed-instance.wcus17662feb9ce98.database.windows.net.@@SERVERNAME returns a full DNS "connectable" name, for example, my-managed-instance.wcus17662feb9ce98.database.windows.net. Consultez @@SERVERNAME.See @@SERVERNAME.
  • SYS.SERVERS retourne le nom DNS « connectable » complet, tel que myinstance.domain.database.windows.net pour les propriétés « name » et « data_source ».SYS.SERVERS returns a full DNS "connectable" name, such as myinstance.domain.database.windows.net for the properties "name" and "data_source." Consultez SYS. SERVERS.See SYS.SERVERS.
  • @@SERVICENAME retourne la valeur NULL, car le concept de service tel qu’il existe pour SQL Server ne s’applique pas à une instance gérée SQL.@@SERVICENAME returns NULL because the concept of service as it exists for SQL Server doesn't apply to SQL Managed Instance. Consultez @@SERVICENAME.See @@SERVICENAME.
  • SUSER_ID est pris en charge.SUSER_ID is supported. Il retourne NULL si la connexion Azure AD n’est pas dans sys.syslogins.It returns NULL if the Azure AD login isn't in sys.syslogins. Consultez SUSER_ID.See SUSER_ID.
  • SUSER_SID n’est pas pris en charge.SUSER_SID isn't supported. Les données incorrectes sont retournées, ce qui est un problème temporaire connu.The wrong data is returned, which is a temporary known issue. Consultez SUSER_SID.See SUSER_SID.

Contraintes d’environnementEnvironment constraints

SubnetSubnet

Réseau virtuelVNET

  • Le réseau virtuel peut être déployé à l’aide du modèle de ressource ; le modèle classique pour réseau virtuel n’est pas pris en charge.VNet can be deployed using Resource Model - Classic Model for VNet is not supported.
  • Après la création d’une instance gérée SQL, le déplacement de l’instance gérée SQL ou du réseau virtuel vers un autre groupe de ressources ou vers un autre abonnement n’est pas pris en charge.After a SQL Managed Instance is created, moving the SQL Managed Instance or VNet to another resource group or subscription is not supported.
  • Certains services, tels que App Service Environment, Logic Apps et SQL Managed Instance (utilisés pour la géoréplication, la réplication transactionnelle ou via des serveurs liés), ne peuvent pas accéder aux instances SQL Managed Instance dans des régions différentes si leurs réseaux virtuels sont connectés au moyen du Peering mondial.Some services such as App Service Environments, Logic apps, and SQL Managed Instance (used for Geo-replication, Transactional replication, or via linked servers) cannot access SQL Managed Instance in different regions if their VNets are connected using global peering. Vous pouvez vous connecter à ces ressources via ExpressRoute ou une connexion entre deux réseaux virtuels, par l’intermédiaire de passerelles de réseau virtuel.You can connect to these resources via ExpressRoute or VNet-to-VNet through VNet Gateways.

Groupes de basculementFailover groups

Les bases de données système ne sont pas répliquées vers l’instance secondaire dans un groupe de basculement.System databases are not replicated to the secondary instance in a failover group. Par conséquent, les scénarios qui dépendent des objets des bases de données système ne peuvent pas être appliqués sur l’instance secondaire, à moins que ces objets ne soient créés manuellement sur cette dernière.Therefore, scenarios that depend on objects from the system databases will be impossible on the secondary instance unless the objects are manually created on the secondary.

Groupes de basculementFailover groups

Les bases de données système ne sont pas répliquées vers l’instance secondaire dans un groupe de basculement.System databases are not replicated to the secondary instance in a failover group. Par conséquent, les scénarios qui dépendent des objets des bases de données système sont impossibles sur l’instance secondaire, à moins que les objets ne soient créés manuellement.Therefore, scenarios that depend on objects from the system databases will be impossible on the secondary instance unless the objects are manually created on the secondary.

TEMPDBTEMPDB

La taille de fichier maximale de tempdb ne peut pas être supérieure à 24 Go par cœur sur un niveau Usage général.The maximum file size of tempdb can't be greater than 24 GB per core on a General Purpose tier. La taille maximale de tempdb sur un niveau Critique pour l’entreprise est limitée à la taille de stockage de SQL Managed Instance.The maximum tempdb size on a Business Critical tier is limited by the SQL Managed Instance storage size. La taille du fichier journal Tempdb est limitée à 120 Go sur le niveau Usage général.Tempdb log file size is limited to 120 GB on General Purpose tier. Certaines requêtes peuvent retourner une erreur si elles ont besoin de plus de 24 Go par cœur dans tempdb ou si elles produisent plus de 120 Go de données de journal.Some queries might return an error if they need more than 24 GB per core in tempdb or if they produce more than 120 GB of log data.

MSDBMSDB

Les schémas MSDB suivants dans SQL Managed Instance doivent être détenus par leurs rôles prédéfinis respectifs :The following MSDB schemas in SQL Managed Instance must be owned by their respective predefined roles:

Important

La modification des noms de rôles prédéfinis, des noms de schéma et des propriétaires de schéma prédéfinis par les clients aura un impact sur le fonctionnement normal du service.Changing the predefined role names, schema names and schema owners by customers will impact the normal operation of the service. Toutes les modifications apportées à ces valeurs seront restaurées aux valeurs prédéfinies dès qu’elles seront détectées, ou au plus tard lors de la prochaine mise à jour du service et ce, pour garantir un fonctionnement normal de ce dernier.Any changes made to these will be reverted back to the predefined values as soon as detected, or at the next service update at the latest to ensure normal service operation.

Journaux des erreursError logs

SQL Managed Instance ajoute des informations détaillées dans les journaux des erreurs.SQL Managed Instance places verbose information in error logs. Beaucoup d’événements système internes sont journalisés dans le journal des erreurs.There are many internal system events that are logged in the error log. utilisez une procédure personnalisée pour lire les journaux des erreurs en excluant les entrées non pertinentes.Use a custom procedure to read error logs that filters out some irrelevant entries. Pour plus d’informations, consultez SQL Managed Instance – sp_readmierrorlog ou Extension SQL Managed Instance (préversion) pour Azure Data Studio.For more information, see SQL Managed Instance – sp_readmierrorlog or SQL Managed Instance extension(preview) for Azure Data Studio.

Étapes suivantesNext steps