Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:Azure SQL Database
Migreringsverktyg validerar SQL Server-källinstansen genom att köra flera utvärderingsregler för att identifiera problem som måste åtgärdas innan du migrerar SQL Server-databasen till Azure SQL Database.
Den här artikeln innehåller en lista över de regler som används för att utvärdera möjligheten att migrera din SQL Server-databas till Azure SQL Database.
Regelsammanfattning
MASSINFOGNING
Rubrik: BULK INSERT med en blobdatakälla som inte är en Azure-blob stöds inte i Azure SQL Database.
Kategori: Problem
Beskrivning
Azure SQL Database kan inte komma åt filresurser eller Windows-mappar. Se avsnittet "Berörda objekt" för specifika användningsområden för BULK INSERT-instruktioner som inte refererar till en Azure-blob. Objekt med BULK INSERT där källan inte är Azure Blob Storage fungerar inte efter migreringen till Azure SQL Database.
Rekommendation
Du måste konvertera BULK INSERT-instruktioner som använder lokala filer eller filresurser för att använda filer från Azure Blob Storage i stället när du migrerar till Azure SQL Database. Du kan också migrera till SQL Server på virtuella Azure-datorer.
COMPUTE-sats
Rubrik: COMPUTE-satsen stöds inte längre och har tagits bort.
Kategori: Varning
Beskrivning
COMPUTE-satsen genererar summor som visas som ytterligare sammanfattningskolumner i slutet av resultatuppsättningen. Den här satsen stöds dock inte längre i Azure SQL Database.
Rekommendation
T-SQL-modulen måste skrivas om med rollup-operatorn i stället. Koden nedan visar hur COMPUTE kan ersättas med ROLLUP:
USE AdventureWorks2022;
GO
SELECT SalesOrderID,
UnitPrice,
UnitPriceDiscount
FROM Sales.SalesOrderDetail
ORDER BY SalesOrderID COMPUTE SUM(UnitPrice),
SUM(UnitPriceDiscount) BY SalesOrderID;
GO
SELECT SalesOrderID,
UnitPrice,
UnitPriceDiscount,
SUM(UnitPrice) AS UnitPrice,
SUM(UnitPriceDiscount) AS UnitPriceDiscount
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID,
UnitPrice,
UnitPriceDiscount
WITH ROLLUP;
För mer information, se Funktionalitet som har utgått för databasmotorn i SQL Server.
CLR-sammansättningar
Rubrik: SQL CLR-sammansättningar stöds inte i Azure SQL Database
Kategori: Problem
Beskrivning
Azure SQL Database stöder inte SQL CLR-sammansättningar.
Rekommendation
För närvarande finns det inget sätt att uppnå detta i Azure SQL Database. De rekommenderade alternativa lösningarna kräver programkod och databasändringar för att endast använda sammansättningar som stöds av Azure SQL Database. Du kan också migrera till Azure SQL Managed Instance eller SQL Server på virtuella Azure-datorer.
Mer information finns under Osupporterade skillnader Transact-SQL i SQL-databasen.
Kryptografileverantör
Rubrik: En användning av CREATE CRYPTOGRAPHIC PROVIDER eller ALTER CRYPTOGRAPHIC PROVIDER hittades, vilket inte stöds i Azure SQL Database
Kategori: Problem
Beskrivning
Azure SQL Database stöder inte KRYPTOGRAFIPROVIDER-instruktioner eftersom den inte kan komma åt filer. Se avsnittet "Berörda objekt" för de specifika användningsområdena av CRYPTOGRAPHIC PROVIDER-satser. Objekt med CREATE CRYPTOGRAPHIC PROVIDER eller ALTER CRYPTOGRAPHIC PROVIDER fungerar inte korrekt efter migreringen till Azure SQL Database.
Rekommendation
Granska objekt med CREATE CRYPTOGRAPHIC PROVIDER eller ALTER CRYPTOGRAPHIC PROVIDER. I alla sådana objekt som krävs tar du bort användning av dessa funktioner. Du kan också migrera till SQL Server på virtuella Azure-datorer.
Korsdatabas-referenser
Rubrik: Frågor mellan databaser stöds inte i Azure SQL Database
Kategori: Problem
Beskrivning
Databaser på den här servern använder frågor mellan databaser som inte stöds i Azure SQL Database.
Rekommendation
Azure SQL Database stöder inte frågor mellan databaser. Följande åtgärder rekommenderas:
- Migrera de beroende databaserna till Azure SQL Database och använd Elastic Database Query-funktioner (för närvarande i förhandsversion) för att fråga mellan Azure SQL-databaser.
- Flytta de beroende datauppsättningarna från andra databaser till den databas som migreras.
- Migrera till Azure SQL Managed Instance.
- Migrera till SQL Server på virtuella Azure-datorer.
Mer information finns i översikt över elastiska frågor i Azure SQL Database (förhandsversion).
Databaskompatibilitet
Rubrik: Azure SQL Database stöder inte kompatibilitetsnivåer under 100.
Kategori: Varning
Beskrivning
Databaskompatibilitetsnivå är ett värdefullt verktyg för att hjälpa till med databasmodernisering, genom att tillåta att SQL Server Database Engine uppgraderas, samtidigt som programmets funktionsstatus bibehålls genom att samma databaskompatibilitetsnivå före uppgradering bibehålls. Azure SQL Database stöder inte kompatibilitetsnivåer under 100.
Rekommendation
Utvärdera om programfunktionen är intakt när databaskompatibilitetsnivån uppgraderas till 100 på Azure SQL Managed Instance. Du kan också migrera till SQL Server på virtuella Azure-datorer.
Databas-e-post
Rubrik: Database Mail stöds inte i Azure SQL Database.
Kategori: Varning
Beskrivning
Den här servern använder funktionen Database Mail, som inte stöds i Azure SQL Database.
Rekommendation
Överväg att migrera till Azure SQL Managed Instance som stöder Database Mail. Du kan också överväga att använda Azure Functions och SendGrid för att utföra e-postfunktioner i Azure SQL Database.
Alias för databasens huvudnamn
Rubrik: SYS. DATABASE_PRINCIPAL_ALIASES stöds inte längre och har tagits bort.
Kategori: Problem
Beskrivning
sys.database_principal_aliases stöds inte längre och har tagits bort i Azure SQL Database.
Rekommendation
Använd roller i stället för alias.
För mer information, se Funktionalitet som har utgått för databasmotorn i SQL Server.
DISABLE_DEF_CNST_CHK alternativ
Rubrik: SET-alternativet DISABLE_DEF_CNST_CHK har utgått och tagits bort.
Kategori: Problem
Beskrivning
SET-alternativet DISABLE_DEF_CNST_CHK upphör och har tagits bort i Azure SQL Database.
För mer information, se Funktionalitet som har utgått för databasmotorn i SQL Server.
FASTFIRSTROW-hint
Rubrik: FASTFIRSTROW-frågetips stöds inte längre och har tagits bort.
Kategori: Varning
Beskrivning
FASTFIRSTROW-frågetips stöds inte längre och har tagits bort i Azure SQL Database.
Rekommendation
I stället för FASTFIRSTROW-frågetips använder du ALTERNATIV (FAST n).
För mer information, se Funktionalitet som har utgått för databasmotorn i SQL Server.
FILESTREAM
Rubrik: FILESTREAM stöds inte i Azure SQL Database
Kategori: Problem
Beskrivning
Funktionen FILESTREAM, som gör att du kan lagra ostrukturerade data som textdokument, bilder och videor i NTFS-filsystemet, stöds inte i Azure SQL Database.
Rekommendation
Ladda upp ostrukturerade filer till Azure Blob Storage och lagra metadata relaterade till dessa filer (namn, typ, URL-plats, lagringsnyckel osv.) i Azure SQL Database. Du kan behöva återskapa ditt program för att aktivera strömmande blobar till och från Azure SQL Database. Du kan också migrera till SQL Server på virtuella Azure-datorer.
För mer information, se Blob-dataöverföring till och från Azure SQL-bloggen.
Länkad server
Rubrik: Funktionen för länkad server stöds inte i Azure SQL Database
Kategori: Problem
Beskrivning
Länkade servrar gör det möjligt för SQL Server Database Engine att köra kommandon mot OLE DB-datakällor utanför SQL Server-instansen.
Rekommendation
Azure SQL Database stöder inte funktioner för länkad server. Följande åtgärder rekommenderas för att eliminera behovet av länkade servrar:
- Identifiera beroende datauppsättningar från fjärranslutna SQL-servrar och överväg att flytta dessa till databasen som migreras.
- Migrera de beroende databaserna till Azure och använd funktionen Elastic Database Query (förhandsversion) för att fråga mellan databaser i Azure SQL Database.
Mer information finns i översikt över elastiska frågor i Azure SQL Database (förhandsversion).
MS DTC
Rubrik: BEGIN DISTRIBUTED TRANSACTION stöds inte i Azure SQL Database.
Kategori: Problem
Beskrivning
Distribuerad transaktion som startades av Transact SQL BEGIN DISTRIBUTED TRANSACTION och hanteras av Microsoft Distributed Transaction Coordinator (MS DTC) stöds inte i Azure SQL Database.
Rekommendation
Granska avsnittet berörda objekt i Azure Migrate för att se alla objekt som använder BEGIN DISTRIBUTED TRANSACTION. Överväg att migrera deltagardatabaserna till Azure SQL Managed Instance där distribuerade transaktioner över flera instanser stöds.
Mer information finns i Transaktioner mellan flera servrar för Azure SQL Managed Instance.
Du kan också migrera till SQL Server på virtuella Azure-datorer.
OPENROWSET (bulk)
Rubrik: OpenRowSet som används i bulkoperationer med en icke-Azure Blob Storage-datakälla stöds inte i Azure SQL Database.
Kategori: Problem
Description OPENROWSET stöder massåtgärder via en inbyggd BULK-provider som gör att data från en fil kan läsas och returneras som en raduppsättning. OPENROWSET med icke-Azure Blob Storage-datakälla stöds inte i Azure SQL Database.
Rekommendation
Azure SQL Database kan inte komma åt filresurser och Windows-mappar, så filerna måste importeras från Azure Blob Storage. Därför stöds endast datakälla av blobtyp i funktionen OPENROWSET. Du kan också migrera till SQL Server på virtuella Azure-datorer
Mer information finns i Lösa Transact-SQL skillnader under migreringen till SQL Database.
OPENROWSET (provider)
Rubrik: OpenRowSet med SQL- eller icke-SQL-provider stöds inte i Azure SQL Database.
Kategori: Problem
Beskrivning
OpenRowSet med SQL eller icke-SQL-provider är ett alternativ till att komma åt tabeller på en länkad server och är en engångsmetod för ad hoc-anslutning och åtkomst till fjärrdata med hjälp av OLE DB. OpenRowSet med SQL- eller icke-SQL-provider stöds inte i Azure SQL Database.
Rekommendation
Azure SQL Database har endast stöd för OPENROWSET för import från Azure Blob Storage. Du kan också migrera till SQL Server på virtuella Azure-datorer.
Mer information finns i Lösa Transact-SQL skillnader under migreringen till SQL Database.
Icke-ANSI vänster yttre koppling
Rubrik: Vänster yttre koppling i icke-ANSI-format stöds inte längre och har tagits bort.
Kategori: Varning
Beskrivning
Vänster yttre koppling i icke-ANSI-format stöds inte längre och har tagits bort i Azure SQL Database.
Rekommendation
Använd ANSI-kopplingssyntax.
För mer information, se Funktionalitet som har utgått för databasmotorn i SQL Server.
Icke-ANSI högeryttre koppling
Rubrik: Höger yttre koppling i icke-ANSI-format stöds inte längre och har tagits bort.
Kategori: Varning
Beskrivning
Yttre koppling i icke-ANSI-format stöds inte längre och har tagits bort i Azure SQL Database.
Rekommendation
Använd ANSI-kopplingssyntax.
För mer information, se Funktionalitet som har utgått för databasmotorn i SQL Server.
Nästa kolumn
Rubrik: Tabeller och kolumner med namnet NEXT leder till ett fel i Azure SQL Database.
Kategori: Problem
Beskrivning
Tabeller eller kolumner med namnet NEXT identifierades. Sekvenser, som introduceras i Microsoft SQL Server, använder funktionen NEXT VALUE FOR i ANSI-standard. Om en tabell eller en kolumn heter NEXT och kolumnen aliasas som VALUE, kan det orsaka ett fel om ANSI-standard-AS utelämnas i den resulterande instruktionen.
Rekommendation
Skriv om instruktioner för att inkludera nyckelordet ANSI standard AS när du aliaserar en tabell eller kolumn. När en kolumn till exempel heter NEXT och kolumnen aliaseras som VÄRDE, orsakar frågan SELECT NEXT VALUE FROM TABLE ett fel och bör skrivas om som SELECT NEXT AS VALUE FROM TABLE. På samma sätt, när en tabell heter NEXT och tabellen används som alias VÄRDE, orsakar frågan SELECT Col1 FROM NEXT VALUE ett fel och bör ändras till SELECT Col1 FROM NEXT AS VALUE.
RAISERROR
Rubrik: RAISERROR-anrop i äldre format bör ersättas med moderna motsvarigheter.
Kategori: Varning
Beskrivning
RAISERROR-anrop som exemplet nedan kallas äldre eftersom de inte innehåller kommatecken och parenteser.
RAISERROR 50001 'this is a test'. Den här metoden för att anropa RAISERROR stöds inte längre och tas bort i Azure SQL Database.
Rekommendation
Skriv om påståendet med den aktuella RAISERROR-syntaxen eller utvärdera om det moderna tillvägagångssättet med BEGIN TRY { } END TRY BEGIN CATCH { THROW; } END CATCH är genomförbart.
För mer information, se Funktionalitet som har utgått för databasmotorn i SQL Server.
Servergranskningar
Rubrik: Använd Azure SQL Database-granskningsfunktioner för att ersätta servergranskningar
Kategori: Varning
Beskrivning
Servergranskningar stöds inte i Azure SQL Database.
Rekommendation
Överväg azure SQL Database-granskningsfunktioner för att ersätta servergranskningar. Azure SQL stöder granskning och funktionerna är mer omfattande än SQL Server. Azure SQL Database kan granska olika databasåtgärder och händelser, till exempel: Åtkomst till data, schemaändringar (DDL), dataändringar (DML), konton, roller och behörigheter (DCL, säkerhets undantag. Azure SQL Database-granskning ökar organisationens möjlighet att få djup inblick i händelser och ändringar som sker i databasen, inklusive uppdateringar och frågor mot data. Du kan också migrera till Azure SQL Managed Instance eller SQL Server på virtuella Azure-datorer.
Mer information finns i Granskning för Azure SQL Database och Azure Synapse Analytics.
Serverautentiseringsuppgifter
Rubrik: Serveromfattande autentiseringsuppgifter stöds inte i Azure SQL Database
Kategori: Varning
Beskrivning
En autentiseringsuppgift är en post som innehåller den autentiseringsinformation (autentiseringsuppgifter) som krävs för att ansluta till en resurs utanför SQL Server. Azure SQL Database stöder databasautentiseringsuppgifter, men inte de som skapats i SQL Server-omfånget.
Rekommendation
Azure SQL Database har stöd för databasomfångsbegränsade autentiseringsuppgifter. Konvertera serveromfattande autentiseringsuppgifter till databasspecifika autentiseringsuppgifter. Du kan också migrera till Azure SQL Managed Instance eller SQL Server på virtuella Azure-datorer.
Mer information finns i CREATE DATABASE SCOPED CREDENTIAL
Serviceförmedlare
Rubrik: Service Broker-funktionen stöds inte i Azure SQL Database
Kategori: Problem
Beskrivning
SQL Server Service Broker har inbyggt stöd för meddelande- och köprogram i SQL Server Database Engine. Service Broker-funktionen stöds inte i Azure SQL Database.
Rekommendation
Service Broker-funktionen stöds inte i Azure SQL Database. Överväg att migrera till Azure SQL Managed Instance som stöder service broker inom samma instans. Du kan också migrera till SQL Server på virtuella Azure-datorer.
Serveromfattande utlöstjänster
Rubrik: Utlösare med serveromfattning stöds inte i Azure SQL Database
Kategori: Varning
Beskrivning
En utlösare är en särskild typ av lagrad procedur som körs som svar på vissa åtgärder i en tabell som infogning, borttagning eller uppdatering av data. Utlösare med serveromfattning stöds inte i Azure SQL Database. Azure SQL Database stöder inte följande alternativ för utlösare: FÖR INLOGGNING, KRYPTERING, MED TILLÄGG, INTE FÖR REPLIKERING, EXTERNT NAMN-alternativ (det finns inget stöd för extern metod), ALLA SERVER-alternativ (DDL-utlösare), utlösare för en INLOGGNINGShändelse (logonutlösare), och Azure SQL Database stöder inte CLR-utlösare.
Rekommendation
Använd utlösaren på databasnivå i stället. Du kan också migrera till Azure SQL Managed Instance eller SQL Server på virtuella Azure-datorer.
Mer information finns i Lösa Transact-SQL skillnader under migreringen till SQL Database.
SQL Agent-jobb
Rubrik: SQL Server Agent-jobb är inte tillgängliga i Azure SQL Database
Kategori: Varning
Beskrivning
SQL Server Agent är en Microsoft Windows-tjänst som kör schemalagda administrativa uppgifter som kallas jobb i SQL Server. SQL Server Agent-jobb är inte tillgängliga i Azure SQL Database.
Rekommendation
Använd elastiska jobb, som ersätter SQL Server Agent-jobb i Azure SQL Database. Med elastiska jobb för Azure SQL Database kan du på ett tillförlitligt sätt köra T-SQL-skript som sträcker sig över flera databaser samtidigt som du försöker igen automatiskt och ger eventuella slutförandegarantier. Du kan också överväga att migrera till Azure SQL Managed Instance eller SQL Server på virtuella Azure-datorer. Mer information finns i elastiska jobb i Azure SQL Database.
SQL Database-storlek
Rubrik: Azure SQL Database stöder inte databasstorlek som är större än 100 TB.
Kategori: Problem
Beskrivning
Databasens storlek är större än den maximala storleken på 100 TB.
Rekommendation
Utvärdera om data kan arkiveras eller komprimeras eller fragmenteras till flera databaser. Du kan också migrera till SQL Server på virtuella Azure-datorer.
Mer information finns i vCore-resursbegränsningar.
SQL Mail
Rubrik: SQL Mail har upphört.
Kategori: Varning
Beskrivning
SQL Mail har upphört och tagits bort i Azure SQL Database.
Rekommendation
Överväg att migrera till Azure SQL Managed Instance eller SQL Server på Virtuella Azure-datorer och använd Database Mail.
Mer information finns i funktioner för utgående databasmotor i SQL Server
SystemProcedurer110
Rubrik: Identifierade instruktioner som refererar till lagrade procedurer i systemet som har tagits bort och som inte är tillgängliga i Azure SQL Database.
Kategori: Varning
Beskrivning
Det går inte att använda följande system- och utökade lagrade procedurer i Azure SQL Database – sp_dboption, sp_addserver, sp_dropalias,sp_activedirectory_obj, sp_activedirectory_scp, sp_activedirectory_start.
Rekommendation
Ta bort referenser till systemprocedurer som inte stöds och som har tagits bort i Azure SQL Database.
Mer information finns i funktioner för utgående databasmotor i SQL Server
Spårningsflaggor
Rubrik: Azure SQL Database stöder inte spårningsflaggor
Kategori: Varning
Beskrivning
Spårningsflaggor används för att tillfälligt ange specifika serveregenskaper eller för att stänga av ett visst beteende. Spårningsflaggor används ofta för att diagnostisera prestandaproblem eller för att felsöka lagrade procedurer eller komplexa datorsystem. Azure SQL Database stöder inte spårningsflaggor.
Rekommendation
Granska avsnittet berörda objekt i Azure Migrate för att se alla spårningsflaggor som inte stöds i Azure SQL Database och utvärdera om de kan tas bort. Du kan också migrera till Azure SQL Managed Instance, som stöder ett begränsat antal globala spårningsflaggor eller SQL Server på virtuella Azure-datorer.
Mer information finns i Lösa Transact-SQL skillnader under migreringen till SQL Database.
Windows-autentisering
Rubrik: Databasanvändare som mappas med Windows-autentisering (integrerad säkerhet) stöds inte i Azure SQL Database.
Kategori: Varning
Beskrivning
Azure SQL Database stöder två typer av autentisering:
- SQL-autentisering: använder ett användarnamn och lösenord
- Microsoft Entra-autentisering: använder identiteter som hanteras av Microsoft Entra-ID (tidigare Azure Active Directory) och stöds för hanterade och integrerade domäner.
Databasanvändare som mappas med Windows-autentisering (integrerad säkerhet) stöds inte i Azure SQL Database.
Rekommendation
Federera den lokala Active Directory med Microsoft Entra-ID. Windows-identiteten kan sedan ersättas med motsvarande Microsoft Entra-identiteter. Du kan också migrera till SQL Server på virtuella Azure-datorer.
Mer information finns i säkerhetsfunktioner i SQL Database.
xp_cmdshell
Rubrik: xp_cmdshell stöds inte i Azure SQL Database.
Kategori: Problem
Beskrivning
xp_cmdshell, som skapar ett Windows-kommandogränssnitt och skickar en sträng för körning, stöds inte i Azure SQL Database.
Rekommendation
Granska avsnittet berörda objekt i Azure Migrate för att se alla objekt som använder xp_cmdshell och utvärdera om referensen till xp_cmdshell eller det berörda objektet kan tas bort. Överväg också att utforska Azure Automation som levererar molnbaserad automatisering och konfigurationstjänst. Du kan också migrera till SQL Server på virtuella Azure-datorer.