| title | T-SQL differences between SQL Server & Azure SQL Managed Instance |
|---|---|
| description | This article discusses the Transact-SQL (T-SQL) differences between an Azure SQL Managed Instance and SQL Server. |
| services | sql-database |
| ms.service | sql-database |
| ms.subservice | managed-instance |
| ms.devlang | |
| ms.topic | conceptual |
| author | jovanpop-msft |
| ms.author | jovanpop |
| ms.reviewer | sstein, carlrab, bonova, danil |
| ms.date | 03/11/2020 |
| ms.custom | seoapril2019, sqldbrb=1 |
This article summarizes and explains the differences in syntax and behavior between Azure SQL Managed Instance and SQL Server.
SQL Managed Instance provides high compatibility with the on-premises SQL Server Database Engine, and most features are supported in a SQL Managed Instance.
There are some PaaS limitations that are introduced in SQL Managed Instance and some behavior changes compared to SQL Server. The differences are divided into the following categories:
- Availability includes the differences in Always On Availability Groups and backups.
- Security includes the differences in auditing, certificates, credentials, cryptographic providers, logins and users, and the service key and service master key.
- Configuration includes the differences in buffer pool extension, collation, compatibility levels, database mirroring, database options, SQL Server Agent, and table options.
- Functionalities include BULK INSERT/OPENROWSET, CLR, DBCC, distributed transactions, extended events, external libraries, filestream and FileTable, full-text Semantic Search, linked servers, PolyBase, Replication, RESTORE, Service Broker, stored procedures, functions, and triggers.
- Environment settings such as VNets and subnet configurations.
Most of these features are architectural constraints and represent service features.
Temporary known issues that are discovered in SQL Managed Instance and will be resolved in the future are described in release notes page.
High availability is built into SQL Managed Instance and can't be controlled by users. The following statements aren't supported:
- CREATE ENDPOINT … FOR DATABASE_MIRRORING
- CREATE AVAILABILITY GROUP
- ALTER AVAILABILITY GROUP
- DROP AVAILABILITY GROUP
- The SET HADR clause of the ALTER DATABASE statement
SQL Managed Instances have automatic backups, so users can create full database COPY_ONLY backups. Differential, log, and file snapshot backups aren't supported.
- With a SQL Managed Instance, you can back up an instance database only to an Azure Blob storage account:
- Only
BACKUP TO URLis supported. FILE,TAPE, and backup devices aren't supported.
- Only
- Most of the general
WITHoptions are supported.COPY_ONLYis mandatory.FILE_SNAPSHOTisn't supported.- Tape options:
REWIND,NOREWIND,UNLOAD, andNOUNLOADaren't supported. - Log-specific options:
NORECOVERY,STANDBY, andNO_TRUNCATEaren't supported.
Limitations:
-
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.
-
You can't execute
BACKUP DATABASE ... WITH COPY_ONLYon a database that's encrypted with service-managed Transparent Data Encryption (TDE). Service-managed TDE forces backups to be encrypted with an internal TDE key. The key can't be exported, so you can't restore the backup. Use automatic backups and point-in-time restore, or use customer-managed (BYOK) TDE instead. You also can disable encryption on the database. -
The maximum backup stripe size by using the
BACKUPcommand in a SQL Managed Instance is 195 GB, which is the maximum blob size. Increase the number of stripes in the backup command to reduce individual stripe size and stay within this limit.[!TIP] 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:
- Back up to
DISKinstead of backing up toURL. - Upload the backup files to Blob storage.
- Restore into the SQL Managed Instance.
The
Restorecommand in a 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. - Back up to
For information about backups using T-SQL, see BACKUP.
The key differences between auditing in databases in Azure SQL Database and databases in SQL Server are:
- With the SQL Managed Instance deployment option in Azure SQL Database, auditing works at the server level. The
.xellog files are stored in Azure Blob storage. - With the single database and elastic pool deployment options in Azure SQL Database, auditing works at the database level.
- In SQL Server on-premises or virtual machines, auditing works at the server level. Events are stored on file system or Windows event logs.
XEvent auditing in SQL Managed Instance supports Azure Blob storage targets. File and Windows logs aren't supported.
The key differences in the CREATE AUDIT syntax for auditing to Azure Blob storage are:
- A new syntax
TO URLis provided that you can use to specify the URL of the Azure Blob storage container where the.xelfiles are placed. - The syntax
TO FILEisn't supported because a SQL Managed Instance can't access Windows file shares.
For more information, see:
A SQL Managed Instance can't access file shares and Windows folders, so the following constraints apply:
- The
CREATE FROM/BACKUP TOfile isn't supported for certificates. - The
CREATE/BACKUPcertificate fromFILE/ASSEMBLYisn't supported. Private key files can't be used.
See CREATE CERTIFICATE and BACKUP CERTIFICATE.
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>)Only Azure Key Vault and SHARED ACCESS SIGNATURE identities are supported. Windows users aren't supported.
See CREATE CREDENTIAL and ALTER CREDENTIAL.
A SQL Managed Instance can't access files, so cryptographic providers can't be created:
CREATE CRYPTOGRAPHIC PROVIDERisn't supported. See CREATE CRYPTOGRAPHIC PROVIDER.ALTER CRYPTOGRAPHIC PROVIDERisn't supported. See ALTER CRYPTOGRAPHIC PROVIDER.
-
SQL logins created by using
FROM CERTIFICATE,FROM ASYMMETRIC KEY, andFROM SIDare supported. See CREATE LOGIN. -
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. These logins are created at the server level.
Managed instance supports Azure AD database principals with the syntax
CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER. This feature is also known as Azure AD contained database users. -
Windows logins created with the
CREATE LOGIN ... FROM WINDOWSsyntax aren't supported. Use Azure Active Directory logins and users. -
The Azure AD user who created the instance has unrestricted admin privileges.
-
Non-administrator Azure AD database-level users can be created by using the
CREATE USER ... FROM EXTERNAL PROVIDERsyntax. See CREATE USER ... FROM EXTERNAL PROVIDER. -
Azure AD server principals (logins) support SQL features within one SQL Managed Instance only. 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. Examples of such features are:
- SQL transactional replication.
- Link server.
-
Setting an Azure AD login mapped to an Azure AD group as the database owner isn't supported.
-
Impersonation of Azure AD server-level principals by using other Azure AD principals is supported, such as the EXECUTE AS clause. EXECUTE AS limitations are:
-
EXECUTE AS USER isn't supported for Azure AD users when the name differs from the login name. 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. When you create a USER from an Azure AD server principal (login), specify the user_name as the same login_name from LOGIN.
-
Only the SQL Server-level principals (logins) that are part of the
sysadminrole can execute the following operations that target Azure AD principals:- EXECUTE AS USER
- EXECUTE AS LOGIN
-
-
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.
- The following configurations are supported using database bacpac file:
- Export/import a database between different manage instances within the same Azure AD domain.
- Export a database from SQL Managed Instance and import to SQL Database within the same Azure AD domain.
- Export a database from SQL Database and import to SQL Managed Instance within the same Azure AD domain.
- Export a database from SQL Managed Instance and import to SQL Server (version 2012 or later).
- In this configuration all Azure AD users are created as SQL database principals (users) without logins. The type of users are listed as SQL (visible as SQL_USER in sys.database_principals). Their permissions and roles remain in the SQL Server database metadata and can be used for impersonation. However, they cannot be used to access and log in to the SQL Server using their credentials.
- The following configurations are supported using database bacpac file:
-
Only the server-level principal login, which is created by the SQL Managed Instance provisioning process, members of the server roles, such as
securityadminorsysadmin, 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. -
If the login is a SQL principal, only logins that are part of the
sysadminrole can use the create command to create logins for an Azure AD account. -
The Azure AD login must be a member of an Azure AD within the same directory that's used for Azure SQL Database SQL Managed Instance.
-
Azure AD server principals (logins) are visible in Object Explorer starting with SQL Server Management Studio 18.0 preview 5.
-
Overlapping Azure AD server principals (logins) with an Azure AD admin account is allowed. Azure AD server principals (logins) take precedence over the Azure AD admin when you resolve the principal and apply permissions to the SQL Managed Instance.
-
During authentication, the following sequence is applied to resolve the authenticating principal:
- 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).
- 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.
- 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).
- 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.
- 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.
- 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.
- Master key backup isn't supported (managed by SQL Database service).
- Master key restore isn't supported (managed by SQL Database service).
- Service master key backup isn't supported (managed by SQL Database service).
- Service master key restore isn't supported (managed by SQL Database service).
- Buffer pool extension isn't supported.
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSIONisn't supported. See ALTER SERVER CONFIGURATION.
The default instance collation is SQL_Latin1_General_CP1_CI_AS and can be specified as a creation parameter. See Collations.
- Supported compatibility levels are 100, 110, 120, 130, 140 and 150.
- Compatibility levels below 100 aren't supported.
- The default compatibility level for new databases is 140. For restored databases, the compatibility level remains unchanged if it was 100 and above.
See ALTER DATABASE Compatibility Level.
Database mirroring isn't supported.
ALTER DATABASE SET PARTNERandSET WITNESSoptions aren't supported.CREATE ENDPOINT … FOR DATABASE_MIRRORINGisn't supported.
For more information, see ALTER DATABASE SET PARTNER and SET WITNESS and CREATE ENDPOINT … FOR DATABASE_MIRRORING.
- Multiple log files aren't supported.
- In-memory objects aren't supported in the General Purpose service tier.
- There's a limit of 280 files per General Purpose instance, which implies a maximum of 280 files per database. Both data and log files in the General Purpose tier are counted toward this limit. The Business Critical tier supports 32,767 files per database.
- The database can't contain filegroups that contain filestream data. Restore fails if .bak contains
FILESTREAMdata. - Every file is placed in Azure Blob storage. IO and throughput per file depend on the size of each individual file.
The following limitations apply to CREATE DATABASE:
-
Files and filegroups can't be defined.
-
The
CONTAINMENToption isn't supported. -
WITHoptions aren't supported.[!TIP] As a workaround, use
ALTER DATABASEafterCREATE DATABASEto set database options to add files or to set containment. -
The
FOR ATTACHoption isn't supported. -
The
AS SNAPSHOT OFoption isn't supported.
For more information, see CREATE DATABASE.
Some file properties can't be set or changed:
- A file path can't be specified in the
ALTER DATABASE ADD FILE (FILENAME='path')T-SQL statement. RemoveFILENAMEfrom the script because a SQL Managed Instance automatically places the files. - A file name can't be changed by using the
ALTER DATABASEstatement.
The following options are set by default and can't be changed:
MULTI_USERENABLE_BROKER ONAUTO_CLOSE OFF
The following options can't be modified:
AUTO_CLOSEAUTOMATIC_TUNING(CREATE_INDEX=ON|OFF)AUTOMATIC_TUNING(DROP_INDEX=ON|OFF)DISABLE_BROKEREMERGENCYENABLE_BROKERFILESTREAMHADRNEW_BROKEROFFLINEPAGE_VERIFYPARTNERREAD_ONLYRECOVERY BULK_LOGGEDRECOVERY_SIMPLEREMOTE_DATA_ARCHIVERESTRICTED_USERSINGLE_USERWITNESS
For more information, see ALTER DATABASE.
- Enabling and disabling SQL Server Agent is currently not supported in SQL Managed Instance. SQL Agent is always running.
- SQL Server Agent settings are read only. The procedure
sp_set_agent_propertiesisn't supported in SQL Managed Instance. - Jobs
- T-SQL job steps are supported.
- The following replication jobs are supported:
- Transaction-log reader
- Snapshot
- Distributor
- SSIS job steps are supported.
- Other types of job steps aren't currently supported:
- The merge replication job step isn't supported.
- Queue Reader isn't supported.
- Command shell isn't yet supported.
- SQL Managed Instances can't access external resources, for example, network shares via robocopy.
- SQL Server Analysis Services aren't supported.
- Notifications are partially supported.
- Email notification is supported, although it requires that you configure a Database Mail profile. SQL Server Agent can use only one Database Mail profile, and it must be called
AzureManagedInstance_dbmail_profile.- Pager isn't supported.
- NetSend isn't supported.
- Alerts aren't yet supported.
- Proxies aren't supported.
- EventLog isn't supported.
The following SQL Agent features currently aren't supported:
- Proxies
- Scheduling jobs on an idle CPU
- Enabling or disabling an Agent
- Alerts
For information about SQL Server Agent, see SQL Server Agent.
The following table types aren't supported:
- FILESTREAM
- FILETABLE
- EXTERNAL TABLE (Polybase)
- MEMORY_OPTIMIZED (not supported only in General Purpose tier)
For information about how to create and alter tables, see CREATE TABLE and ALTER TABLE.
A SQL Managed Instance can't access file shares and Windows folders, so the files must be imported from Azure Blob storage:
DATASOURCEis required in theBULK INSERTcommand while you import files from Azure Blob storage. See BULK INSERT.DATASOURCEis required in theOPENROWSETfunction when you read the content of a file from Azure Blob storage. See OPENROWSET.OPENROWSETcan be used to read data from other Azure SQL single databases, SQL Managed Instances or SQL Server instances. Other sources such as Oracle databases or Excel files are not supported.
A SQL Managed Instance can't access file shares and Windows folders, so the following constraints apply:
- Only
CREATE ASSEMBLY FROM BINARYis supported. See CREATE ASSEM BLY FROM BINARY. CREATE ASSEMBLY FROM FILEisn't supported. See CREATE ASSEMBLY FROM FILE.ALTER ASSEMBLYcan't reference files. See ALTER ASSEMBLY.
sp_send_dbmailcannot send attachments using @file_attachments parameter. Local file system and external shares or Azure Blob Storage are not accessible from this procedure.- See the known issues related to
@queryparameter and authentication.
Undocumented DBCC statements that are enabled in SQL Server aren't supported in SQL Managed Instances.
- Only a limited number of Global Trace flags are supported. Session-level
Trace flagsaren't supported. See Trace flags. - DBCC TRACEOFF and DBCC TRACEON work with the limited number of global trace-flags.
- DBCC CHECKDB with options REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST, and REPAIR_REBUILD cannot be used because database cannot be set in
SINGLE_USERmode - see ALTER DATABASE differences. Potential database corruption is handled by the Azure support team. Contact Azure support if there is any indication of database corruption.
MSDTC and elastic transactions currently aren't supported in SQL Managed Instances.
Some Windows-specific targets for Extended Events (XEvents) aren't supported:
- The
etw_classic_synctarget isn't supported. Store.xelfiles in Azure Blob storage. See etw_classic_sync target. - The
event_filetarget isn't supported. Store.xelfiles in Azure Blob storage. See event_file target.
In-database R and Python, external libraries aren't yet supported. See SQL Server Machine Learning Services.
- Filestream data isn't supported.
- The database can't contain filegroups with
FILESTREAMdata. FILETABLEisn't supported.- Tables can't have
FILESTREAMtypes. - The following functions aren't supported:
GetPathLocator()GET_FILESTREAM_TRANSACTION_CONTEXT()PathName()GetFileNamespacePat)FileTableRootPath()
For more information, see FILESTREAM and FileTables.
Semantic Search isn't supported.
Linked servers in SQL Managed Instances support a limited number of targets:
- Supported targets are SQL Managed Instance, SQL Database, and SQL Server instances.
- Linked servers don't support distributed writable transactions (MS DTC).
- Targets that aren't supported are files, Analysis Services, and other RDBMS. Try to use native CSV import from Azure Blob Storage using
BULK INSERTorOPENROWSETas an alternative for file import.
Operations:
- Cross-instance write transactions aren't supported.
sp_dropserveris supported for dropping a linked server. See sp_dropserver.- The
OPENROWSETfunction can be used to execute queries only on SQL Server instances. They can be either managed, on-premises, or in virtual machines. See OPENROWSET. - The
OPENDATASOURCEfunction can be used to execute queries only on SQL Server instances. They can be either managed, on-premises, or in virtual machines. Only theSQLNCLI,SQLNCLI11, andSQLOLEDBvalues are supported as a provider. An example isSELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2012.HumanResources.Employee. See OPENDATASOURCE. - Linked servers cannot be used to read files (Excel, CSV) from the network shares. Try to use BULK INSERT or OPENROWSET that reads CSV files from Azure Blob Storage. Track this requests on SQL Managed Instance Feedback item|
External tables that reference the files in HDFS or Azure Blob storage aren't supported. For information about PolyBase, see PolyBase.
- Snapshot and Bi-directional replication types are supported. Merge replication, Peer-to-peer replication, and updatable subscriptions are not supported.
- Transactional Replication is available for public preview on SQL Managed Instance with some constraints:
- All types of replication participants (Publisher, Distributor, Pull Subscriber, and Push Subscriber) can be placed on SQL Managed Instances, but the publisher and the distributor must be either both in the cloud or both on-premises.
- SQL Managed Instances can communicate with the recent versions of SQL Server. See the supported versions matrix for more information.
- Transactional Replication has some additional networking requirements.
For more information about configuring transactional replication, see the following tutorials:
- Replication between a SQL MI publisher and SQL MI subscriber
- Replication between an SQL MI publisher, SQL MI distributor, and SQL Server subscriber
- Supported syntax:
RESTORE DATABASERESTORE FILELISTONLY ONLYRESTORE HEADER ONLYRESTORE LABELONLY ONLYRESTORE VERIFYONLY ONLY
- Unsupported syntax:
RESTORE LOG ONLYRESTORE REWINDONLY ONLY
- Source:
FROM URL(Azure Blob storage) is the only supported option.FROM DISK/TAPE/backup device isn't supported.- Backup sets aren't supported.
WITHoptions aren't supported, such as noDIFFERENTIALorSTATS.ASYNC RESTORE: Restore continues even if the client connection breaks. If your connection is dropped, you can check thesys.dm_operation_statusview for the status of a restore operation, and for a CREATE and DROP database. See sys.dm_operation_status.
The following database options are set or overridden and can't be changed later:
NEW_BROKERif the broker isn't enabled in the .bak file.ENABLE_BROKERif the broker isn't enabled in the .bak file.AUTO_CLOSE=OFFif a database in the .bak file hasAUTO_CLOSE=ON.RECOVERY FULLif a database in the .bak file hasSIMPLEorBULK_LOGGEDrecovery mode.- A memory-optimized filegroup is added and called XTP if it wasn't in the source .bak file.
- Any existing memory-optimized filegroup is renamed to XTP.
SINGLE_USERandRESTRICTED_USERoptions are converted toMULTI_USER.
Limitations:
- 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. Make sure that you run
DBCC CHECKDBon the source SQL Managed Instance and use backupWITH CHECKSUMin order to prevent this issue. - Restore of
.BAKfile of a database that contains any limitation described in this document (for example,FILESTREAMorFILETABLEobjects) cannot be restored on SQL Managed Instance. .BAKfiles that contain multiple backup sets can't be restored..BAKfiles that contain multiple log files can't be restored.- 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.
- 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. For information about restore statements, see RESTORE statements.
Important
The same limitations apply to built-in point-in-time restore operation. As an example, General Purpose database greater than 4 TB cannot be restored on Business Critical instance. Business Critical database with In-memory OLTP files or more than 280 files cannot be restored on General Purpose instance.
Cross-instance service broker isn't supported:
sys.routes: As a prerequisite, you must select the address from sys.routes. The address must be LOCAL on every route. See sys.routes.CREATE ROUTE: You can't useCREATE ROUTEwithADDRESSother thanLOCAL. See CREATE ROUTE.ALTER ROUTE: You can't useALTER ROUTEwithADDRESSother thanLOCAL. See ALTER ROUTE.
NATIVE_COMPILATIONisn't supported in the General Purpose tier.- The following sp_configure options aren't supported:
allow polybase exportallow updatesfilestream_access_levelremote accessremote data archiveremote proc trans
sp_execute_external_scriptsisn't supported. See sp_execute_external_scripts.xp_cmdshellisn't supported. See xp_cmdshell.Extended stored proceduresaren't supported, which includessp_addextendedprocandsp_dropextendedproc. See Extended stored procedures.sp_attach_db,sp_attach_single_file_db, andsp_detach_dbaren't supported. See sp_attach_db, sp_attach_single_file_db, and sp_detach_db.
The following variables, functions, and views return different results:
SERVERPROPERTY('EngineEdition')returns the value 8. This property uniquely identifies a SQL Managed Instance. See SERVERPROPERTY.SERVERPROPERTY('InstanceName')returns NULL because the concept of instance as it exists for SQL Server doesn't apply to a SQL Managed Instance. See SERVERPROPERTY('InstanceName').@@SERVERNAMEreturns a full DNS "connectable" name, for example, my-managed-instance.wcus17662feb9ce98.database.windows.net. See @@SERVERNAME.SYS.SERVERSreturns a full DNS "connectable" name, such asmyinstance.domain.database.windows.netfor the properties "name" and "data_source." See SYS.SERVERS.@@SERVICENAMEreturns NULL because the concept of service as it exists for SQL Server doesn't apply to a SQL Managed Instance. See @@SERVICENAME.SUSER_IDis supported. It returns NULL if the Azure AD login isn't in sys.syslogins. See SUSER_ID.SUSER_SIDisn't supported. The wrong data is returned, which is a temporary known issue. See SUSER_SID.
- You cannot place any other resources (for example virtual machines) in the subnet where you have deployed your SQL Managed Instance. Deploy these resources using a different subnet.
- Subnet must have sufficient number of available IP addresses. Minimum is 16, while recommendation is to have at least 32 IP addresses in the subnet.
- Service endpoints cannot be associated with the SQL Managed Instance's subnet. Make sure that the service endpoints option is disabled when you create the virtual network.
- The number of vCores and types of instances that you can deploy in a region have some constraints and limits.
- There are some security rules that must be applied on the subnet.
- VNet can be deployed using Resource Model - Classic Model for VNet is not supported.
- After a SQL Managed Instance is created, moving the SQL Managed Instance or VNet to another resource group or subscription is not supported.
- Some services such as App Service Environments, Logic apps, and SQL Managed Instances (used for Geo-replication, Transactional replication, or via linked servers) cannot access SQL Managed Instances in different regions if their VNets are connected using global peering. You can connect to these resources via ExpressRoute or VNet-to-VNet through VNet Gateways.
The maximum file size of tempdb can't be greater than 24 GB per core on a General Purpose tier. The maximum tempdb size on a Business Critical tier is limited by the SQL Managed Instance storage size. Tempdb log file size is limited to 120 GB on General Purpose tier. 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.
The following MSDB schemas in SQL Managed Instance must be owned by their respective predefined roles:
- General roles
- TargetServersRole
- Fixed database roles
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
- DatabaseMail roles:
- DatabaseMailUserRole
- Integration services roles:
- db_ssisadmin
- db_ssisltduser
- db_ssisoperator
Important
Changing the predefined role names, schema names and schema owners by customers will impact the normal operation of the service. 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.
A SQL Managed Instance places verbose information in error logs. There are many internal system events that are logged in the error log. Use a custom procedure to read error logs that filters out some irrelevant entries. For more information, see SQL Managed Instance – sp_readmierrorlog or SQL Managed Instance extension(preview) for Azure Data Studio.
- For more information about SQL Managed Instances, see What is SQL Managed Instance?
- For a features and comparison list, see Azure SQL Managed Instance feature comparison.
- For release updates and known issues state, see SQL Managed Instance release notes
- For a quickstart that shows you how to create a new SQL Managed Instance, see Create a SQL Managed Instance.
