<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <data name="SQLDBDatabaseSizeTitle" xml:space="preserve">
    <value>Azure SQL Database does not support database size greater than 100 TB.</value>
  </data>
  <data name="SQLDBDatabaseSizeIssueCategory" xml:space="preserve">
    <value>Issue</value>
  </data>
  <data name="SQLDBDatabaseSizeDescription" xml:space="preserve">
    <value>The size of the database is greater than the maximum supported size of 100 TB.</value>
  </data>
  <data name="SQLDBDatabaseSizeRecommendation" xml:space="preserve">
    <value>Evaluate if the data can be archived or compressed or sharded into multiple databases. Alternatively, migrate to SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="SQLDBDatabaseSizeMoreInformation" xml:space="preserve">
    <value>Resource limits for single databases</value>
  </data>
  <data name="SQLDBDatabaseSizeMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/azure/azure-sql/database/resource-limits-vcore-single-databases</value>
  </data>
  <data name="XpCmdshellTitle" xml:space="preserve">
    <value>xp_cmdshell is not supported in Azure SQL Database.</value>
  </data>
  <data name="XpCmdshellIssueCategory" xml:space="preserve">
    <value>Issue</value>
  </data>
  <data name="XpCmdshellDescription" xml:space="preserve">
    <value>xp_cmdshell which spawns a Windows command shell and passes in a string for execution is not supported in Azure SQL Database.</value>
  </data>
  <data name="XpCmdshellRecommendation" xml:space="preserve">
    <value>Review impacted objects section to see all objects using xp_cmdshell and evaluate if the reference to xp_cmdshell or the impacted object can be removed. Also consider exploring Azure Automation that delivers cloud-based automation and configuration service. Alternatively, migrate to SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="XpCmdshellMoreInformation" xml:space="preserve">
    <value />
  </data>
  <data name="XpCmdshellMoreInformationlink" xml:space="preserve">
    <value />
  </data>
  <data name="CrossDatabaseReferencesTitle" xml:space="preserve">
    <value>Cross-database queries are not supported in Azure SQL Database</value>
  </data>
  <data name="CrossDatabaseReferencesIssueCategory" xml:space="preserve">
    <value>Issue</value>
  </data>
  <data name="CrossDatabaseReferencesDescription" xml:space="preserve">
    <value>Databases on this server use cross-database queries, which are not supported in Azure SQL Database.</value>
  </data>
  <data name="CrossDatabaseReferencesRecommendation" xml:space="preserve">
    <value>Azure SQL Database does not support cross-database queries. The following actions are recommended: 1. Migrate the dependent database(s) to Azure SQL Database and use 'Elastic Database Query' (Currently in preview) functionality to query across Azure SQL databases 2. Move the dependent datasets from other databases into the database that is being migrated 3. Migrate to Azure SQL Managed Instance 4. Migrate to SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="CrossDatabaseReferencesMoreInformation" xml:space="preserve">
    <value>Check Azure SQL Database elastic database query (Currently in preview)</value>
  </data>
  <data name="CrossDatabaseReferencesMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/azure/azure-sql/database/elastic-query-overview</value>
  </data>
  <data name="FileStreamTitle" xml:space="preserve">
    <value>Filestream is not supported in Azure SQL Database</value>
  </data>
  <data name="FileStreamIssueCategory" xml:space="preserve">
    <value>Issue</value>
  </data>
  <data name="FileStreamDescription" xml:space="preserve">
    <value>The Filestream feature, which allows you to store unstructured data such as text documents, images, and videos in NTFS file system, is not supported in Azure SQL Database.</value>
  </data>
  <data name="FileStreamRecommendation" xml:space="preserve">
    <value>Upload the unstructured files to Azure Blob storage and store metadata related to these files (name, type, URL location, storage key etc.) in Azure SQL Database. You may have to re-engineer your application to enable streaming blobs to and from Azure SQL Database. Alternatively, migrate to SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="FileStreamMoreInformation" xml:space="preserve">
    <value>See Streaming Blobs To and From SQL Azure</value>
  </data>
  <data name="FileStreamMoreInformationlink" xml:space="preserve">
    <value>https://azure.microsoft.com/en-us/blog/streaming-blobs-to-and-from-sql-azure/</value>
  </data>
  <data name="LinkedServerTitle" xml:space="preserve">
    <value>Linked server functionality is not supported in Azure SQL Database</value>
  </data>
  <data name="LinkedServerIssueCategory" xml:space="preserve">
    <value>Issue</value>
  </data>
  <data name="LinkedServerDescription" xml:space="preserve">
    <value>Linked servers enable the SQL Server Database Engine to execute commands against OLE DB data sources outside of the instance of SQL Server.</value>
  </data>
  <data name="LinkedServerRecommendation" xml:space="preserve">
    <value>Azure SQL Database does not support linked server functionality. The following actions are recommended to eliminate the need for linked servers: 1. Identify the dependent datasets from remote SQL servers and consider moving these into the database being migrated. 2. Migrate the dependent database(s) to Azure SQL Database and use ‘Elastic Database Query’ functionality (Currently in preview) to query across Azure SQL databases 3. Migrate to Azure SQL Managed Instance if the remote server is SQL Server as well 4. Migrate to SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="LinkedServerMoreInformation" xml:space="preserve">
    <value>Check Azure SQL Database elastic database query (Currently in preview)</value>
  </data>
  <data name="LinkedServerMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/azure/azure-sql/database/elastic-query-overview</value>
  </data>
  <data name="ServiceBrokerTitle" xml:space="preserve">
    <value>Service Broker feature is not supported in Azure SQL Database</value>
  </data>
  <data name="ServiceBrokerIssueCategory" xml:space="preserve">
    <value>Issue</value>
  </data>
  <data name="ServiceBrokerDescription" xml:space="preserve">
    <value>SQL Server Service Broker provides native support for messaging and queuing applications in the SQL Server Database Engine. Service Broker feature is not supported in Azure SQL Database.</value>
  </data>
  <data name="ServiceBrokerRecommendation" xml:space="preserve">
    <value>Service Broker feature is not supported in Azure SQL Database. Consider migrating to Azure SQL Managed Instance that supports service broker within the same instance. Alternatively, migrate to SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="ServiceBrokerMoreInformation" xml:space="preserve">
    <value />
  </data>
  <data name="ServiceBrokerMoreInformationlink" xml:space="preserve">
    <value />
  </data>
  <data name="OpenRowsetWithNonBlobDataSourceBulkTitle" xml:space="preserve">
    <value>OpenRowSet used in bulk operation with non-Azure blob storage data source is not supported in Azure SQL Database.</value>
  </data>
  <data name="OpenRowsetWithNonBlobDataSourceBulkIssueCategory" xml:space="preserve">
    <value>Issue</value>
  </data>
  <data name="OpenRowsetWithNonBlobDataSourceBulkDescription" xml:space="preserve">
    <value>OPENROWSET supports bulk operations through a built-in BULK provider that enables data from a file to be read and returned as a rowset. OPENROWSET with non-Azure blob storage data source is not supported in Azure SQL Database.</value>
  </data>
  <data name="OpenRowsetWithNonBlobDataSourceBulkRecommendation" xml:space="preserve">
    <value>Azure SQL Database cannot access file shares and Windows folders, so the files must be imported from Azure blob storage. Therefore, only blob type DATASOURCE is supported in OPENROWSET function. Alternatively, migrate to SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="OpenRowsetWithNonBlobDataSourceBulkMoreInformation" xml:space="preserve">
    <value>Resolving Transact-SQL differences during migration to SQL Database</value>
  </data>
  <data name="OpenRowsetWithNonBlobDataSourceBulkMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/azure/azure-sql/database/transact-sql-tsql-differences-sql-server#transact-sql-syntax-not-supported-in-azure-sql-database</value>
  </data>
  <data name="OpenRowsetWithSQLAndNonSQLProviderTitle" xml:space="preserve">
    <value>OpenRowSet with SQL or non-SQL provider is not supported in Azure SQL Database.</value>
  </data>
  <data name="OpenRowsetWithSQLAndNonSQLProviderIssueCategory" xml:space="preserve">
    <value>Issue</value>
  </data>
  <data name="OpenRowsetWithSQLAndNonSQLProviderDescription" xml:space="preserve">
    <value>OpenRowSet with SQL or non-SQL provider is an alternative to accessing tables in a linked server and is a one-time, ad hoc method of connecting and accessing remote data by using OLE DB. OpenRowSet with SQL or non SQL provider is not supported in Azure SQL Database.</value>
  </data>
  <data name="OpenRowsetWithSQLAndNonSQLProviderRecommendation" xml:space="preserve">
    <value>Azure SQL Database supports OPENROWSET only to import from Azure blob storage. Alternatively, migrate to SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="OpenRowsetWithSQLAndNonSQLProviderMoreInformation" xml:space="preserve">
    <value>Resolving Transact-SQL differences during migration to SQL Database</value>
  </data>
  <data name="OpenRowsetWithSQLAndNonSQLProviderMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/azure/azure-sql/database/transact-sql-tsql-differences-sql-server#transact-sql-syntax-not-supported-in-azure-sql-database</value>
  </data>
  <data name="ClrAssembliesTitle" xml:space="preserve">
    <value>SQL CLR assemblies are not supported in Azure SQL Database</value>
  </data>
  <data name="ClrAssembliesIssueCategory" xml:space="preserve">
    <value>Issue</value>
  </data>
  <data name="ClrAssembliesDescription" xml:space="preserve">
    <value>Azure SQL Database does not support SQL CLR assemblies.</value>
  </data>
  <data name="ClrAssembliesRecommendation" xml:space="preserve">
    <value>Currently, there is no way to achieve this in Azure SQL Database. The recommended alternative solutions will require application code and database changes to use only assemblies supported by Azure SQL Database. Alternatively migrate to Azure SQL Managed Instance or SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="ClrAssembliesMoreInformation" xml:space="preserve">
    <value>Un supported Transact-SQL in Azure SQL Database</value>
  </data>
  <data name="ClrAssembliesMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/azure/azure-sql/database/transact-sql-tsql-differences-sql-server#transact-sql-syntax-not-supported-in-azure-sql-database</value>
  </data>
  <data name="BulkInsertTitle" xml:space="preserve">
    <value>BULK INSERT with non-Azure blob data source is not supported in Azure SQL Database.</value>
  </data>
  <data name="BulkInsertIssueCategory" xml:space="preserve">
    <value>Issue</value>
  </data>
  <data name="BulkInsertDescription" xml:space="preserve">
    <value>Azure SQL Database cannot access file shares or Windows folders. See the "Impacted Objects" section for the specific uses of BULK INSERT statements that do not reference an Azure blob. Objects with 'BULK INSERT' where the source is not Azure blob storage will not work after migrating to Azure SQL Database.</value>
  </data>
  <data name="BulkInsertRecommendation" xml:space="preserve">
    <value>You will need to convert BULK INSERT statements that use local files or file shares to use files from Azure blob storage instead, when migrating to Azure SQL Database. Alternatively, migrate to SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="BulkInsertMoreInformation" xml:space="preserve">
    <value />
  </data>
  <data name="BulkInsertMoreInformationlink" xml:space="preserve">
    <value />
  </data>
  <data name="CryptographicProviderTitle" xml:space="preserve">
    <value>A use of CREATE CRYPTOGRAPHIC PROVIDER or ALTER CRYPTOGRAPHIC PROVIDER was found, which is not supported in Azure SQL Database</value>
  </data>
  <data name="CryptographicProviderIssueCategory" xml:space="preserve">
    <value>Issue</value>
  </data>
  <data name="CryptographicProviderDescription" xml:space="preserve">
    <value>Azure SQL Database does not support CRYPTOGRAPHIC PROVIDER statements because it cannot access files. See the Impacted Objects section for the specific uses of CRYPTOGRAPHIC PROVIDER statements. Objects with 'CREATE CRYPTOGRAPHIC PROVIDER' or 'ALTER CRYPTOGRAPHIC PROVIDER' will not work correctly after migrating to Azure SQL Database.</value>
  </data>
  <data name="CryptographicProviderRecommendation" xml:space="preserve">
    <value>Review objects with 'CREATE CRYPTOGRAPHIC PROVIDER' or 'ALTER CRYPTOGRAPHIC PROVIDER'. In any such objects that are required, remove the uses of these features. Alternatively, migrate to SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="CryptographicProviderMoreInformation" xml:space="preserve">
    <value />
  </data>
  <data name="CryptographicProviderMoreInformationlink" xml:space="preserve">
    <value />
  </data>
  <data name="MSDTCTransactSQLTitle" xml:space="preserve">
    <value>BEGIN DISTRIBUTED TRANSACTION is not supported in Azure SQL Database.</value>
  </data>
  <data name="MSDTCTransactSQLIssueCategory" xml:space="preserve">
    <value>Issue</value>
  </data>
  <data name="MSDTCTransactSQLDescription" xml:space="preserve">
    <value>Distributed transaction started by Transact SQL BEGIN DISTRIBUTED TRANSACTION and managed by Microsoft Distributed Transaction Coordinator (MS DTC) is not supported in Azure SQL Database.</value>
  </data>
  <data name="MSDTCTransactSQLRecommendation" xml:space="preserve">
    <value>Review impacted objects section to see all objects using BEGIN DISTRUBUTED TRANSACTION. Consider migrating the participant databases to Azure SQL Managed Instance where distributed transactions across multiple instances are supported (Currently in preview). Alternatively, migrate to SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="MSDTCTransactSQLMoreInformation" xml:space="preserve">
    <value>Transactions across multiple servers for Azure SQL Managed Instance</value>
  </data>
  <data name="MSDTCTransactSQLMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/azure/azure-sql/database/elastic-transactions-overview#transactions-across-multiple-servers-for-azure-sql-managed-instance</value>
  </data>
  <data name="ComputeClauseTitle" xml:space="preserve">
    <value>COMPUTE clause is discontinued and has been removed.</value>
  </data>
  <data name="ComputeClauseIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="ComputeClauseDescription" xml:space="preserve">
    <value>The COMPUTE clause generates totals that appear as additional summary columns at the end of the result set. However, this clause is no longer supported in Azure SQL Database.</value>
  </data>
  <data name="ComputeClauseRecommendation" xml:space="preserve">
    <value>The T-SQL module needs to be rewritten using the ROLLUP operator instead. The code below demonstrates how COMPUTE can be replaced with ROLLUP: USE AdventureWorks 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;</value>
  </data>
  <data name="ComputeClauseMoreInformation" xml:space="preserve">
    <value>Discontinued Database Engine Functionality in SQL Server</value>
  </data>
  <data name="ComputeClauseMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/previous-versions/sql/2014/database-engine/discontinued-database-engine-functionality-in-sql-server-2016?view=sql-server-2014#Denali</value>
  </data>
  <data name="DatabasePrincipalAliasTitle" xml:space="preserve">
    <value>SYS.DATABASE_PRINCIPAL_ALIASES is discontinued and has been removed.</value>
  </data>
  <data name="DatabasePrincipalAliasIssueCategory" xml:space="preserve">
    <value>Issue</value>
  </data>
  <data name="DatabasePrincipalAliasDescription" xml:space="preserve">
    <value>SYS.DATABASE_PRINCIPAL_ALIASES is discontinued and has been removed in Azure SQL Database.</value>
  </data>
  <data name="DatabasePrincipalAliasRecommendation" xml:space="preserve">
    <value>Use roles instead of aliases.</value>
  </data>
  <data name="DatabasePrincipalAliasMoreInformation" xml:space="preserve">
    <value>Discontinued Database Engine Functionality in SQL Server</value>
  </data>
  <data name="DatabasePrincipalAliasMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/previous-versions/sql/2014/database-engine/discontinued-database-engine-functionality-in-sql-server-2016?view=sql-server-2014#Denali</value>
  </data>
  <data name="DisableDefCNSTCHKTitle" xml:space="preserve">
    <value>SET option DISABLE_DEF_CNST_CHK is discontinued and has been removed.</value>
  </data>
  <data name="DisableDefCNSTCHKIssueCategory" xml:space="preserve">
    <value>Issue</value>
  </data>
  <data name="DisableDefCNSTCHKDescription" xml:space="preserve">
    <value>SET option DISABLE_DEF_CNST_CHK is discontinued and has been removed in Azure SQL Database.</value>
  </data>
  <data name="DisableDefCNSTCHKRecommendation" xml:space="preserve">
    <value />
  </data>
  <data name="DisableDefCNSTCHKMoreInformation" xml:space="preserve">
    <value>Discontinued Database Engine Functionality in SQL Server</value>
  </data>
  <data name="DisableDefCNSTCHKMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/previous-versions/sql/2014/database-engine/discontinued-database-engine-functionality-in-sql-server-2016?view=sql-server-2014#Denali</value>
  </data>
  <data name="FastFirstRowHintTitle" xml:space="preserve">
    <value>FASTFIRSTROW query hint is discontinued and has been removed.</value>
  </data>
  <data name="FastFirstRowHintIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="FastFirstRowHintDescription" xml:space="preserve">
    <value>FASTFIRSTROW query hint is discontinued and has been removed in Azure SQL Database.</value>
  </data>
  <data name="FastFirstRowHintRecommendation" xml:space="preserve">
    <value>Instead of FASTFIRSTROW query hint use OPTION (FAST n).</value>
  </data>
  <data name="FastFirstRowHintMoreInformation" xml:space="preserve">
    <value>Discontinued Database Engine Functionality in SQL Server</value>
  </data>
  <data name="FastFirstRowHintMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/previous-versions/sql/2014/database-engine/discontinued-database-engine-functionality-in-sql-server-2016?view=sql-server-2014#Denali</value>
  </data>
  <data name="NextColumnTitle" xml:space="preserve">
    <value>Tables and Columns named NEXT will lead to an error In Azure SQL Database.</value>
  </data>
  <data name="NextColumnIssueCategory" xml:space="preserve">
    <value>Issue</value>
  </data>
  <data name="NextColumnDescription" xml:space="preserve">
    <value>Tables or columns named NEXT were detected. Sequences, introduced in Microsoft SQL Server, use the ANSI standard NEXT VALUE FOR function. If a table or a column is named NEXT and the column is aliased as VALUE, and if the ANSI standard AS is omitted, the resulting statement can cause an error.</value>
  </data>
  <data name="NextColumnRecommendation" xml:space="preserve">
    <value>Rewrite statements to include the ANSI standard AS keyword when aliasing a table or column. For example, when a column is named NEXT and that column is aliased as VALUE, the query SELECT NEXT VALUE FROM TABLE will cause an error and should be rewritten as SELECT NEXT AS VALUE FROM TABLE. Similarly, when a table is named NEXT and that table is aliased as VALUE, the query SELECT Col1 FROM NEXT VALUE will cause an error and should be rewritten as SELECT Col1 FROM NEXT AS VALUE.</value>
  </data>
  <data name="NextColumnMoreInformation" xml:space="preserve">
    <value />
  </data>
  <data name="NextColumnMoreInformationlink" xml:space="preserve">
    <value />
  </data>
  <data name="NonANSILeftOuterJoinSyntaxTitle" xml:space="preserve">
    <value>Non-ANSI style left outer join is discontinued and has been removed.</value>
  </data>
  <data name="NonANSILeftOuterJoinSyntaxIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="NonANSILeftOuterJoinSyntaxDescription" xml:space="preserve">
    <value>Non-ANSI style left outer join is discontinued and has been removed in Azure SQL Database.</value>
  </data>
  <data name="NonANSILeftOuterJoinSyntaxRecommendation" xml:space="preserve">
    <value>Use ANSI join syntax.</value>
  </data>
  <data name="NonANSILeftOuterJoinSyntaxMoreInformation" xml:space="preserve">
    <value>Discontinued Database Engine Functionality in SQL Server</value>
  </data>
  <data name="NonANSILeftOuterJoinSyntaxMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/previous-versions/sql/2014/database-engine/discontinued-database-engine-functionality-in-sql-server-2016?view=sql-server-2014#Denali</value>
  </data>
  <data name="NonANSIRightOuterJoinSyntaxTitle" xml:space="preserve">
    <value>Non-ANSI style right outer join is discontinued and has been removed.</value>
  </data>
  <data name="NonANSIRightOuterJoinSyntaxIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="NonANSIRightOuterJoinSyntaxDescription" xml:space="preserve">
    <value>Non-ANSI style right outer join is discontinued and has been removed in Azure SQL Database.</value>
  </data>
  <data name="NonANSIRightOuterJoinSyntaxRecommendation" xml:space="preserve">
    <value>Use ANSI join syntax.</value>
  </data>
  <data name="NonANSIRightOuterJoinSyntaxMoreInformation" xml:space="preserve">
    <value>Discontinued Database Engine Functionality in SQL Server</value>
  </data>
  <data name="NonANSIRightOuterJoinSyntaxMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/previous-versions/sql/2014/database-engine/discontinued-database-engine-functionality-in-sql-server-2016?view=sql-server-2014#Denali</value>
  </data>
  <data name="RAISERRORTitle" xml:space="preserve">
    <value>Legacy style RAISERROR calls should be replaced with modern equivalents.</value>
  </data>
  <data name="RAISERRORIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="RAISERRORDescription" xml:space="preserve">
    <value>RAISERROR calls like the below example are termed as legacy-style because they do not include the commas and the parenthesis.RAISERROR 50001 'this is a test'. This method of calling RAISERROR is discontinued and removed in Azure SQL Database.</value>
  </data>
  <data name="RAISERRORRecommendation" xml:space="preserve">
    <value>Rewrite the statement using the current RAISERROR syntax, or evaluate if the modern approach of BEGIN TRY { }  END TRY BEGIN CATCH {  THROW; } END CATCH is feasible.</value>
  </data>
  <data name="RAISERRORMoreInformation" xml:space="preserve">
    <value>Discontinued Database Engine Functionality in SQL Server</value>
  </data>
  <data name="RAISERRORMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/previous-versions/sql/2014/database-engine/discontinued-database-engine-functionality-in-sql-server-2016?view=sql-server-2014#Denali</value>
  </data>
  <data name="DbCompatLevelLowerThan100Title" xml:space="preserve">
    <value>Azure SQL Database doesn’t support compatibility levels below 100.</value>
  </data>
  <data name="DbCompatLevelLowerThan100IssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="DbCompatLevelLowerThan100Description" xml:space="preserve">
    <value>Database Compatibility Level is a valuable tool to assist in database modernization, by allowing the SQL Server Database Engine to be upgraded, while keeping connecting applications functional status by maintaining the same pre-upgrade Database Compatibility Level. Azure SQL Database doesn’t support compatibility levels below 100.</value>
  </data>
  <data name="DbCompatLevelLowerThan100Recommendation" xml:space="preserve">
    <value>Evaluate if the application functionality is intact when the database compatibility level is upgraded to 100 on Azure SQL Managed Instance. Alternatively, migrate to SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="DbCompatLevelLowerThan100MoreInformation" xml:space="preserve">
    <value />
  </data>
  <data name="DbCompatLevelLowerThan100MoreInformationlink" xml:space="preserve">
    <value />
  </data>
  <data name="SqlMailTitle" xml:space="preserve">
    <value>SQL Mail has been discontinued.</value>
  </data>
  <data name="SqlMailIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="SqlMailDescription" xml:space="preserve">
    <value>SQL Mail has been discontinued and removed in Azure SQL Database.</value>
  </data>
  <data name="SqlMailRecommendation" xml:space="preserve">
    <value>Consider migrating to Azure SQL Managed Instance or SQL Server on Azure Virtual Machines and use Database Mail.</value>
  </data>
  <data name="SqlMailMoreInformation" xml:space="preserve">
    <value>Discontinued Database Engine Functionality in SQL Server</value>
  </data>
  <data name="SqlMailMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/previous-versions/sql/2014/database-engine/discontinued-database-engine-functionality-in-sql-server-2016?view=sql-server-2014#Denali</value>
  </data>
  <data name="SystemProcedures110Title" xml:space="preserve">
    <value>Detected statements that reference removed system stored procedures that are not available in Azure SQL Database.</value>
  </data>
  <data name="SystemProcedures110IssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="SystemProcedures110Description" xml:space="preserve">
    <value>Following unsupported system and extended stored procedures cannot be used in Azure SQL database - sp_dboption, sp_addserver, sp_dropalias,sp_activedirectory_obj, sp_activedirectory_scp,sp_activedirectory_start</value>
  </data>
  <data name="SystemProcedures110Recommendation" xml:space="preserve">
    <value>Remove references to unsupported system procedures that have been removed in Azure SQL Database.</value>
  </data>
  <data name="SystemProcedures110MoreInformation" xml:space="preserve">
    <value>Discontinued Database Engine Functionality in SQL Server</value>
  </data>
  <data name="SystemProcedures110MoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/previous-versions/sql/2014/database-engine/discontinued-database-engine-functionality-in-sql-server-2016?view=sql-server-2014#Denali</value>
  </data>
  <data name="AgentJobsTitle" xml:space="preserve">
    <value>SQL Server Agent jobs are not available in Azure SQL Database</value>
  </data>
  <data name="AgentJobsIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="AgentJobsDescription" xml:space="preserve">
    <value>SQL Server Agent is a Microsoft Windows service that executes scheduled administrative tasks, which are called jobs in SQL Server. SQL Server Agent jobs are not available in Azure SQL Database.</value>
  </data>
  <data name="AgentJobsRecommendation" xml:space="preserve">
    <value>Use Elastic Database Jobs (preview), which are the replacement for SQL Server Agent jobs in Azure SQL Database. Elastic Database Jobs for Azure SQL Database allow you to reliably execute T-SQL scripts that span multiple databases while automatically retrying and providing eventual completion guarantees.  Alternatively consider migrating to Azure SQL Managed Instance or SQL Server on Azure Virtual Machines.</value>
  </data>
  <data name="AgentJobsMoreInformation" xml:space="preserve">
    <value>Getting started with Elastic Database Jobs (Preview)</value>
  </data>
  <data name="AgentJobsMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/azure/azure-sql/database/elastic-jobs-overview</value>
  </data>
  <data name="DatabaseMailTitle" xml:space="preserve">
    <value>Database Mail is not supported in Azure SQL Database.</value>
  </data>
  <data name="DatabaseMailIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="DatabaseMailDescription" xml:space="preserve">
    <value>This server uses the Database Mail feature, which is not supported in Azure SQL Database.</value>
  </data>
  <data name="DatabaseMailRecommendation" xml:space="preserve">
    <value>Consider migrating to Azure SQL Managed Instance or SQL Server on Azure Virtual Machine that supports Database Mail. Alternatively, consider using Azure functions and Sendgrid to accomplish mail functionality on Azure SQL Database.</value>
  </data>
  <data name="DatabaseMailMoreInformation" xml:space="preserve">
    <value>Send email from Azure SQL Database using Azure Functions</value>
  </data>
  <data name="DatabaseMailMoreInformationlink" xml:space="preserve">
    <value>https://github.com/microsoft/DataMigrationTeam/tree/master/IP%20and%20Scripts/AF%20SendMail</value>
  </data>
  <data name="ServerAuditsTitle" xml:space="preserve">
    <value>Server Audits is not supported in Azure SQL Database.</value>
  </data>
  <data name="ServerAuditsIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="ServerAuditsDescription" xml:space="preserve">
    <value>Auditing an instance of the SQL Server Database Engine or an individual database involves tracking and logging events that occur on the Database Engine. SQL Server audit lets you create server audits, which can contain server audit specifications for server level events, and database audit specifications for database level events. Server audits are not supported in Azure SQL Database, use database audits as a replacement.</value>
  </data>
  <data name="ServerAuditsRecommendation" xml:space="preserve">
    <value>Consider Azure SQL Database audit features to replace Server Audits.  Azure SQL supports audit, and the features are richer than SQL Server. Azure SQL database can audit various database actions and events, including: Access to data, Schema changes (DDL), Data changes (DML), Accounts, roles, and permissions (DCL, Security exceptions. Azure SQL Database Auditing increases an organization's ability to gain deep insight into events and changes that occur within their SQL database, including updates and queries against the data. Alternatively migrate to Azure SQL Managed Instance or SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="ServerAuditsMoreInformation" xml:space="preserve">
    <value>Auditing for Azure SQL Database</value>
  </data>
  <data name="ServerAuditsMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/azure/azure-sql/database/auditing-overview</value>
  </data>
  <data name="ServerCredentialsTitle" xml:space="preserve">
    <value>Server scoped credential is not supported in Azure SQL Database</value>
  </data>
  <data name="ServerCredentialsIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="ServerCredentialsDescription" xml:space="preserve">
    <value>A credential is a record that contains the authentication information (credentials) required to connect to a resource outside SQL Server. Azure SQL Database supports database credentials, but not the ones created at the SQL Server scope.</value>
  </data>
  <data name="ServerCredentialsRecommendation" xml:space="preserve">
    <value>Azure SQL Database supports database scoped credentials. Convert server scoped credentials to database scoped credentials. Alternatively migrate to Azure SQL Managed Instance or SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="ServerCredentialsMoreInformation" xml:space="preserve">
    <value>Creating database scoped credential</value>
  </data>
  <data name="ServerCredentialsMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/sql/t-sql/statements/create-database-scoped-credential-transact-sql?redirectedfrom=MSDN&amp;view=sql-server-ver15</value>
  </data>
  <data name="ServerScopedTriggersTitle" xml:space="preserve">
    <value>Server-scoped trigger is not supported in Azure SQL Database</value>
  </data>
  <data name="ServerScopedTriggersIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="ServerScopedTriggersDescription" xml:space="preserve">
    <value>A trigger is a special kind of stored procedure that executes in response to certain action on a table like insertion, deletion, or updating of data. Server-scoped triggers are not supported in Azure SQL Database. Azure SQL Database does not support the following options for triggers: FOR LOGON, ENCRYPTION, WITH APPEND, NOT FOR REPLICATION, EXTERNAL NAME option (there is no external method support), ALL SERVER Option (DDL Trigger), Trigger on a LOGON event (Logon Trigger), Azure SQL Database does not support CLR-triggers.</value>
  </data>
  <data name="ServerScopedTriggersRecommendation" xml:space="preserve">
    <value>Use database level trigger instead. Alternatively migrate to Azure SQL Managed Instance or SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="ServerScopedTriggersMoreInformation" xml:space="preserve">
    <value>Resolving Transact-SQL differences during migration to SQL Database</value>
  </data>
  <data name="ServerScopedTriggersMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/azure/azure-sql/database/transact-sql-tsql-differences-sql-server#transact-sql-syntax-not-supported-in-azure-sql-database</value>
  </data>
  <data name="TraceFlagsTitle" xml:space="preserve">
    <value>Azure SQL Database does not support trace flags</value>
  </data>
  <data name="TraceFlagsIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="TraceFlagsDescription" xml:space="preserve">
    <value>Trace flags are used to temporarily set specific server characteristics or to switch off a particular behavior.  Trace flags are frequently used to diagnose performance issues or to debug stored procedures or complex computer systems. Azure SQL Database does not support trace flags.</value>
  </data>
  <data name="TraceFlagsRecommendation" xml:space="preserve">
    <value>Review impacted objects section to see all trace flags that are not supported in Azure SQL Database and evaluate if they can be removed. Alternatively, migrate to Azure SQL Managed Instance which supports limited number of global trace flags or SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="TraceFlagsMoreInformation" xml:space="preserve">
    <value>Resolving Transact-SQL differences during migration to SQL Database</value>
  </data>
  <data name="TraceFlagsMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/azure/azure-sql/database/transact-sql-tsql-differences-sql-server#transact-sql-syntax-not-supported-in-azure-sql-database</value>
  </data>
  <data name="WindowsAuthenticationTitle" xml:space="preserve">
    <value>Database users mapped with Windows authentication (integrated security) are not supported in Azure SQL Database.</value>
  </data>
  <data name="WindowsAuthenticationIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="WindowsAuthenticationDescription" xml:space="preserve">
    <value>Azure SQL Database  supports two types of authentication 1) SQL Authentication, which uses a username and password 2) Azure Active Directory Authentication, which uses identities managed by Azure Active Directory and is supported for managed and integrated domains. Database users mapped with Windows authentication (integrated security) are not supported in Azure SQL Database.</value>
  </data>
  <data name="WindowsAuthenticationRecommendation" xml:space="preserve">
    <value>Federate the local Active Directory with Azure Active Directory. The Windows identity can then be replaced with the equivalent Azure Active Directory identities. Alternatively, migrate to SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="WindowsAuthenticationMoreInformation" xml:space="preserve">
    <value>An overview of Azure SQL Database and SQL Managed Instance security capabilities</value>
  </data>
  <data name="WindowsAuthenticationMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/azure/azure-sql/database/security-overview#authentication</value>
  </data>
  <data name="SyntaxErrorTitle" xml:space="preserve">
    <value>Syntax issue on the source server</value>
  </data>
  <data name="SyntaxErrorIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="SyntaxErrorDescription" xml:space="preserve">
    <value>While parsing the objects on the source database, one or more syntax issues were found. Syntax issues on the source database indicate that some objects contain unsupported syntax in the server version and database compatibility level.</value>
  </data>
  <data name="SyntaxErrorRecommendation" xml:space="preserve">
    <value>Review the list of objects and issues reported, fix the syntax errors, and re-run assessment before migrating this database.</value>
  </data>
  <data name="SyntaxErrorMoreInformation" xml:space="preserve">
    <value />
  </data>
  <data name="SyntaxErrorMoreInformationlink" xml:space="preserve">
    <value />
  </data>
  <data name="MemoryOptimizedTablesTitle" xml:space="preserve">
    <value>Azure SQL Database General Purpose service tier does not support in-memory OLTP (memory optimized tables).</value>
  </data>
  <data name="MemoryOptimizedTablesIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="MemoryOptimizedTablesDescription" xml:space="preserve">
    <value>SQL Server provides an In-Memory OLTP capability. It allows usage of memory-optimized tables, memory-optimized table types, and natively compiled SQL modules to run workloads that have high-throughput and low-latency requirements for transactional processing. Azure SQL Database General Purpose service tier does not support in-memory OLTP (memory optimized tables). This feature is only supported in Azure SQL Database Business Critical service tier.</value>
  </data>
  <data name="MemoryOptimizedTablesRecommendation" xml:space="preserve">
    <value>If you have memory-optimized tables or memory-optimized table types in your on-premises SQL Server instance and you want to migrate to Azure SQL Database, you should either choose the Business Critical tier for your target Azure SQL database that supports In-Memory OLTP (OR) if you want to migrate to the General Purpose tier, remove memory-optimized tables, memory-optimized table types, and natively compiled SQL modules that interact with memory-optimized objects before migrating your databases. You can use the following T-SQL query to identify all objects that need to be removed before migration to the General Purpose tier: SELECT * FROM sys.tables WHERE is_memory_optimized=1, SELECT * FROM sys.table_types WHERE is_memory_optimized=1, SELECT * FROM sys.sql_modules WHERE uses_native_compilation=1</value>
  </data>
  <data name="MemoryOptimizedTablesMoreInformation" xml:space="preserve">
    <value>Azure SQL Database unsupported feature for General Purpose tier.</value>
  </data>
  <data name="MemoryOptimizedTablesMoreInformationlink" xml:space="preserve">
    <value>https://docs.microsoft.com/en-us/azure/azure-sql/in-memory-oltp-overview</value>
  </data>
  <data name="DBAGDbSyncSecondaryReplicaCountTitle" xml:space="preserve">
    <value>Azure SQL Database supports a maximum of 1 synchronous-commit secondary replica.</value>
  </data>
  <data name="DBAGDbSyncSecondaryReplicaCountIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="DBAGDbSyncSecondaryReplicaCountDescription" xml:space="preserve">
    <value>The maximum number of synchronous-commit secondary replicas supported by Azure SQL Database is 1.</value>
  </data>
  <data name="DBAGDbSyncSecondaryReplicaCountRecommendation" xml:space="preserve">
    <value>If application requirements cannot be met with the available synchronous-commit secondary, consider leveraging asynchronous-commit secondaries instead. Alternatively, migrate to SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="DBAGDbSyncSecondaryReplicaCountMoreInformation" xml:space="preserve">
    <value>High availability for Azure SQL Database</value>
  </data>
  <data name="DBAGDbSyncSecondaryReplicaCountMoreInformationlink" xml:space="preserve">
    <value>https://aka.ms/migrate/sql/DBAGDbSyncSecondaryReplicaCount</value>
  </data>
  <data name="DBAGDbAsyncSecondaryReplicaCountTitle" xml:space="preserve">
    <value>Azure SQL Database supports a maximum of 18 asynchronous-commit secondary replica.</value>
  </data>
  <data name="DBAGDbAsyncSecondaryReplicaCountIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="DBAGDbAsyncSecondaryReplicaCountDescription" xml:space="preserve">
    <value>The maximum number of asynchronous-commit secondary replicas supported by Azure SQL Database with additional Active geo-replication partners is 18.</value>
  </data>
  <data name="DBAGDbAsyncSecondaryReplicaCountRecommendation" xml:space="preserve">
    <value>If application requirements cannot be met with the available asynchronous-commit secondaries, consider migrating to SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="DBAGDbAsyncSecondaryReplicaCountMoreInformation" xml:space="preserve">
    <value>High availability for Azure SQL Database</value>
  </data>
  <data name="DBAGDbAsyncSecondaryReplicaCountMoreInformationlink" xml:space="preserve">
    <value>https://aka.ms/migrate/sql/DBAGDbAsyncSecondaryReplicaCount</value>
  </data>
  <data name="DBAGDbReadAsyncSecondaryReplicaCountTitle" xml:space="preserve">
    <value>Azure SQL Database supports a maximum of 8 read-access asynchronous-commit secondary replica.</value>
  </data>
  <data name="DBAGDbReadAsyncSecondaryReplicaCountIssueCategory" xml:space="preserve">
    <value>Warning</value>
  </data>
  <data name="DBAGDbReadAsyncSecondaryReplicaCountDescription" xml:space="preserve">
    <value>The maximum number of read-access asynchronous-commit secondary replicas supported by Azure SQL Database with additional Active geo-replication partners is 8.</value>
  </data>
  <data name="DBAGDbReadAsyncSecondaryReplicaCountRecommendation" xml:space="preserve">
    <value>If application requirements cannot be met with the available read-access asynchronous-commit secondaries, consider migrating to SQL Server on Azure Virtual Machine.</value>
  </data>
  <data name="DBAGDbReadAsyncSecondaryReplicaCountMoreInformation" xml:space="preserve">
    <value>High availability for Azure SQL Database</value>
  </data>
  <data name="DBAGDbAsyncSecondaryReplicaCountMoreInformationlink" xml:space="preserve">
    <value>https://aka.ms/migrate/sql/DBAGDbReadAsyncSecondaryReplicaCount</value>
  </data>
</root>