Evaluatieregels voor migratie van SQL Server naar Azure SQL Database
Van toepassing op: Azure SQL Database
Migratiehulpprogramma's valideren uw SQL Server-bronexemplaren door verschillende evaluatieregels uit te voeren om problemen te identificeren die moeten worden opgelost voordat u uw SQL Server-database naar Azure SQL Database migreert.
Dit artikel bevat een lijst met de regels die worden gebruikt om de haalbaarheid van het migreren van uw SQL Server-database naar Azure SQL Database te beoordelen.
Overzicht van regels
BULK INSERT
Titel: BULK INSERT met niet-Azure Blob-gegevensbron wordt niet ondersteund in Azure SQL Database.
Categorie: Probleem
Beschrijving
Azure SQL Database heeft geen toegang tot bestandsshares of Windows-mappen. Zie de sectie Betrokken objecten voor het specifieke gebruik van BULK INSERT
instructies die niet verwijzen naar een Azure-blob. Objecten met BULK INSERT
waar de bron niet Azure Blob Storage is, werkt niet na de migratie naar Azure SQL Database.
Aanbeveling
U moet instructies converteren BULK INSERT
die lokale bestanden of bestandsshares gebruiken om in plaats daarvan bestanden uit Azure Blob Storage te gebruiken, wanneer u migreert naar Azure SQL Database. U kunt ook migreren naar SQL Server op azure Virtual Machine.
COMPUTE-component
Titel: COMPUTE-component wordt niet meer ondersteund en is verwijderd.
Categorie: Waarschuwing
Beschrijving
De COMPUTE-component genereert totalen die worden weergegeven als extra samenvattingskolommen aan het einde van de resultatenset. Deze component wordt echter niet meer ondersteund in Azure SQL Database.
Aanbeveling
De T-SQL-module moet opnieuw worden geschreven met behulp van de ROLLUP-operator. De onderstaande code laat zien hoe COMPUTE
u deze kunt vervangen door 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;
Meer informatie: Stopgezette database-enginefunctionaliteit in SQL Server
CLR-assembly's
Titel: SQL CLR-assembly's worden niet ondersteund in Azure SQL Database
Categorie: Probleem
Beschrijving
Azure SQL Database biedt geen ondersteuning voor SQL CLR-assembly's.
Aanbeveling
Op dit moment is er geen manier om dit te bereiken in Azure SQL Database. Voor de aanbevolen alternatieve oplossingen moeten toepassingscode en databasewijzigingen alleen assembly's worden gebruikt die worden ondersteund door Azure SQL Database. U kunt ook migreren naar Azure SQL Managed Instance of SQL Server op azure Virtual Machine.
Meer informatie: Niet-ondersteunde Transact-SQL-verschillen in SQL Database
Cryptografische provider
Titel: Er is een gebruik van DE CRYPTOGRAFISCHE PROVIDER CREATE of ALTER CRYPTOGRAPHIC PROVIDER gevonden, die niet wordt ondersteund in Azure SQL Database
Categorie: Probleem
Beschrijving
Azure SQL Database biedt geen ondersteuning voor CRYPTOGRAFISCHE PROVIDER-instructies omdat deze geen toegang heeft tot bestanden. Zie de sectie Betrokken objecten voor het specifieke gebruik van CRYPTOGRAFISCHE PROVIDER-instructies. Objecten met CREATE CRYPTOGRAPHIC PROVIDER
of ALTER CRYPTOGRAPHIC PROVIDER
werken niet correct na de migratie naar Azure SQL Database.
Aanbeveling
Objecten controleren met CREATE CRYPTOGRAPHIC PROVIDER
of ALTER CRYPTOGRAPHIC PROVIDER
. Verwijder in dergelijke objecten die vereist zijn het gebruik van deze functies. U kunt ook migreren naar SQL Server op azure Virtual Machine.
Kruisdatabaseverwijzingen
Titel: Query's tussen databases worden niet ondersteund in Azure SQL Database
Categorie: Probleem
Beschrijving
Databases op deze server maken gebruik van query's voor meerdere databases, die niet worden ondersteund in Azure SQL Database.
Aanbeveling
Azure SQL Database biedt geen ondersteuning voor query's tussen databases. De volgende acties worden aanbevolen:
- Migreer de afhankelijke databases naar Azure SQL Database en gebruik elastic Database-queryfunctionaliteit (momenteel in preview) om query's uit te voeren in Azure SQL-databases.
- Verplaats de afhankelijke gegevenssets van andere databases naar de database die wordt gemigreerd.
- Migreren naar Azure SQL Managed Instance.
- Migreren naar SQL Server op virtuele Azure-machine.
Meer informatie: De query voor elastische databases van Azure SQL Database controleren (preview)
Databasecompatibiliteit
Titel: Azure SQL Database biedt geen ondersteuning voor compatibiliteitsniveaus onder de 100.
Categorie: Waarschuwing
Beschrijving
Databasecompatibiliteitsniveau is een waardevol hulpmiddel om te helpen bij het moderniseren van databases, doordat de SQL Server Database Engine kan worden bijgewerkt, terwijl de functionele status van toepassingen wordt behouden door hetzelfde compatibiliteitsniveau voor de database vóór de upgrade te behouden. Azure SQL Database biedt geen ondersteuning voor compatibiliteitsniveaus onder de 100.
Aanbeveling
Evalueer of de functionaliteit van de toepassing intact is wanneer het databasecompatibiliteitsniveau wordt bijgewerkt naar 100 op Azure SQL Managed Instance. U kunt ook migreren naar SQL Server op azure Virtual Machine.
Database Mail
Titel: Database Mail wordt niet ondersteund in Azure SQL Database.
Categorie: Waarschuwing
Beschrijving
Deze server maakt gebruik van de functie Database Mail, die niet wordt ondersteund in Azure SQL Database.
Aanbeveling
Overweeg om te migreren naar Azure SQL Managed Instance dat Database Mail ondersteunt. U kunt ook Azure-functies en SendGrid gebruiken om e-mailfunctionaliteit in Azure SQL Database uit te voeren.
Database-principalalias
Titel: SYS. DATABASE_PRINCIPAL_ALIASES wordt niet meer ondersteund en is verwijderd.
Categorie: Probleem
Beschrijving
SYS. DATABASE_PRINCIPAL_ALIASES wordt niet meer ondersteund en is verwijderd in Azure SQL Database.
Aanbeveling
Gebruik rollen in plaats van aliassen.
Meer informatie: Stopgezette database-enginefunctionaliteit in SQL Server
DISABLE_DEF_CNST_CHK optie
Titel: SET-optie DISABLE_DEF_CNST_CHK wordt stopgezet en is verwijderd.
Categorie: Probleem
Beschrijving
SET-optie DISABLE_DEF_CNST_CHK wordt stopgezet en is verwijderd in Azure SQL Database.
Meer informatie: Stopgezette database-enginefunctionaliteit in SQL Server
FASTFIRSTROW-hint
Titel: FASTFIRSTROW-queryhint wordt niet meer ondersteund en is verwijderd.
Categorie: Waarschuwing
Beschrijving
FASTFIRSTROW-queryhint wordt niet meer ondersteund en is verwijderd in Azure SQL Database.
Aanbeveling
In plaats van FASTFIRSTROW-queryhint gebruikt u OPTION (FAST n).
Meer informatie: Stopgezette database-enginefunctionaliteit in SQL Server
BESTANDSSTROOM
Titel: FILESTREAM wordt niet ondersteund in Azure SQL Database
Categorie: Probleem
Beschrijving
De functie FILESTREAM, waarmee u ongestructureerde gegevens kunt opslaan, zoals tekstdocumenten, afbeeldingen en video's in het NTFS-bestandssysteem, wordt niet ondersteund in Azure SQL Database.
Aanbeveling
Upload de ongestructureerde bestanden naar Azure Blob Storage en sla metagegevens op die betrekking hebben op deze bestanden (naam, type, URL-locatie, opslagsleutel, enzovoort) in Azure SQL Database. Mogelijk moet u uw toepassing opnieuw ontwerpen om streaming-blobs naar en van Azure SQL Database in te schakelen. U kunt ook migreren naar SQL Server op azure Virtual Machine.
Meer informatie: Blobs streamen naar en van Azure SQL-blog
Gekoppelde server
Titel: Functionaliteit van gekoppelde server wordt niet ondersteund in Azure SQL Database
Categorie: Probleem
Beschrijving
Met gekoppelde servers kan de SQL Server Database Engine opdrachten uitvoeren op OLE DB-gegevensbronnen buiten het exemplaar van SQL Server.
Aanbeveling
Azure SQL Database biedt geen ondersteuning voor functionaliteit voor gekoppelde servers. De volgende acties worden aanbevolen om de noodzaak van gekoppelde servers te elimineren:
- Identificeer de afhankelijke gegevenssets van externe SQL-servers en overweeg deze te verplaatsen naar de database die wordt gemigreerd.
- Migreer de afhankelijke databases naar Azure en gebruik de functionaliteit elastische databasequery (preview) om query's uit te voeren op databases in Azure SQL Database.
Meer informatie: De elastische query van Azure SQL Database controleren (preview).
MS DTC
Titel: BEGIN DISTRIBUTED TRANSACTION wordt niet ondersteund in Azure SQL Database.
Categorie: Probleem
Beschrijving
Gedistribueerde transactie gestart door Transact SQL BEGIN DISTRIBUTED TRANSACTION en beheerd door Microsoft Distributed Transaction Coordinator (MS DTC) wordt niet ondersteund in Azure SQL Database.
Aanbeveling
Bekijk de sectie betreffende objecten in Azure Migrate om alle objecten te zien met BEHULP van BEGIN DISTRUBUTED TRANSACTION. Overweeg om de deelnemersdatabases te migreren naar Azure SQL Managed Instance, waarbij gedistribueerde transacties over meerdere exemplaren worden ondersteund. Zie Transacties op meerdere servers voor Azure SQL Managed Instance voor meer informatie.
U kunt ook migreren naar SQL Server op azure Virtual Machine.
OPENROWSET (bulk)
Titel: OpenRowSet die wordt gebruikt in bulkbewerkingen met niet-Azure Blob Storage-gegevensbron, wordt niet ondersteund in Azure SQL Database.
Categorie: Probleem
Beschrijving OPENROWSET ondersteunt bulkbewerkingen via een ingebouwde BULK-provider waarmee gegevens uit een bestand kunnen worden gelezen en geretourneerd als een rijenset. OPENROWSET met niet-Azure Blob Storage-gegevensbron wordt niet ondersteund in Azure SQL Database.
Aanbeveling
Azure SQL Database heeft geen toegang tot bestandsshares en Windows-mappen, dus de bestanden moeten worden geïmporteerd uit Azure Blob Storage. Daarom wordt alleen gegevensbron van het blobtype ondersteund in de functie OPENROWSET. U kunt ook migreren naar SQL Server op virtuele Azure-machine
Meer informatie: Transact-SQL-verschillen oplossen tijdens migratie naar SQL Database
OPENROWSET (provider)
Titel: OpenRowSet met SQL of niet-SQL-provider wordt niet ondersteund in Azure SQL Database.
Categorie: Probleem
Beschrijving
OpenRowSet met SQL of niet-SQL-provider is een alternatief voor het openen van tabellen op een gekoppelde server en is een eenmalige ad-hocmethode voor het verbinden en openen van externe gegevens met behulp van OLE DB. OpenRowSet met SQL of niet-SQL-provider wordt niet ondersteund in Azure SQL Database.
Aanbeveling
Azure SQL Database biedt alleen ondersteuning voor OPENROWSET om te importeren uit Azure Blob Storage. U kunt ook migreren naar SQL Server op azure Virtual Machine.
Meer informatie: Transact-SQL-verschillen oplossen tijdens migratie naar SQL Database
Niet-ANSI left outer join
Titel: Niet-ANSI-stijl left outer join wordt niet meer ondersteund en is verwijderd.
Categorie: Waarschuwing
Beschrijving
Niet-ANSI-stijl left outer join wordt niet meer ondersteund en is verwijderd in Azure SQL Database.
Aanbeveling
Gebruik de ANSI-joinsyntaxis.
Meer informatie: Stopgezette database-enginefunctionaliteit in SQL Server
Niet-ANSI right outer join
Titel: Niet-ANSI-stijl right outer join wordt niet meer ondersteund en is verwijderd.
Categorie: Waarschuwing
Beschrijving
Niet-ANSI-stijl right outer join wordt niet meer ondersteund en is verwijderd in Azure SQL Database.
Aanbeveling
Gebruik de ANSI-joinsyntaxis.
Meer informatie: Stopgezette database-enginefunctionaliteit in SQL Server
Volgende kolom
Titel: Tabellen en kolommen met de naam NEXT leiden tot een fout in Azure SQL Database.
Categorie: Probleem
Beschrijving
Tabellen of kolommen met de naam NEXT zijn gedetecteerd. Reeksen, geïntroduceerd in Microsoft SQL Server, gebruiken de ANSI-standaard NEXT VALUE FOR, functie. Als een tabel of kolom de naam NEXT heeft en de kolom als WAARDE wordt gealiaseerd en als de ANSI-standaard AS wordt weggelaten, kan de resulterende instructie een fout veroorzaken.
Aanbeveling
Herschrijfinstructies om het standaard-AS-trefwoord ANSI op te nemen bij het aliasen van een tabel of kolom. Als een kolom bijvoorbeeld NEXT heet en die kolom als WAARDE is alias, veroorzaakt de query SELECT NEXT VALUE FROM TABLE
een fout en moet deze worden herschreven als SELECT NEXT AS VALUE FROM TABLE. Op dezelfde manier, wanneer een tabel de naam NEXT heeft en die tabel als WAARDE wordt alias, veroorzaakt de query SELECT Col1 FROM NEXT VALUE
een fout en moet deze worden herschreven als SELECT Col1 FROM NEXT AS VALUE
.
RAISERROR
Titel: Oudere stijl RAISERROR-aanroepen moeten worden vervangen door moderne equivalenten.
Categorie: Waarschuwing
Beschrijving
RAISERROR-aanroepen zoals in het onderstaande voorbeeld worden aangeduid als verouderd omdat ze geen komma's en haakjes bevatten. RAISERROR 50001 'this is a test'
. Deze methode voor het aanroepen van RAISERROR wordt niet meer ondersteund en verwijderd in Azure SQL Database.
Aanbeveling
Herschrijf de instructie met behulp van de huidige RAISERROR-syntaxis of evalueer of de moderne benadering BEGIN TRY { } END TRY BEGIN CATCH { THROW; } END CATCH
haalbaar is.
Meer informatie: Stopgezette database-enginefunctionaliteit in SQL Server
Servercontroles
Titel: Azure SQL Database-controlefuncties gebruiken om servercontroles te vervangen
Categorie: Waarschuwing
Beschrijving
Servercontroles worden niet ondersteund in Azure SQL Database.
Aanbeveling
Overweeg controlefuncties van Azure SQL Database om Server-controles te vervangen. Azure SQL biedt ondersteuning voor controle en de functies zijn rijker dan SQL Server. Azure SQL Database kan verschillende databaseacties en gebeurtenissen controleren, waaronder: Toegang tot gegevens, schemawijzigingen (DDL), gegevenswijzigingen (DML), accounts, rollen en machtigingen (DCL, beveiligingsuitzonderingen). Azure SQL Database Auditing verhoogt het vermogen van een organisatie om meer inzicht te krijgen in gebeurtenissen en wijzigingen die zich in hun database voordoen, inclusief updates en query's op de gegevens. U kunt ook migreren naar Azure SQL Managed Instance of SQL Server op azure Virtual Machine.
Meer informatie: Controleren voor Azure SQL Database
Serverreferenties
Titel: Referentie voor serverbereik wordt niet ondersteund in Azure SQL Database
Categorie: Waarschuwing
Beschrijving
Een referentie is een record die de verificatiegegevens (referenties) bevat die nodig zijn om verbinding te maken met een resource buiten SQL Server. Azure SQL Database ondersteunt databasereferenties, maar niet de referenties die zijn gemaakt op het SQL Server-bereik.
Aanbeveling
Azure SQL Database ondersteunt databasereferenties. Converteer referenties met serverbereik naar databasereferenties. U kunt ook migreren naar Azure SQL Managed Instance of SQL Server op azure Virtual Machine.
Meer informatie: Referenties voor databasebereik maken
Service Broker
Titel: Service Broker-functie wordt niet ondersteund in Azure SQL Database
Categorie: Probleem
Beschrijving
SQL Server Service Broker biedt systeemeigen ondersteuning voor berichten- en wachtrijtoepassingen in de SQL Server Database Engine. De Service Broker-functie wordt niet ondersteund in Azure SQL Database.
Aanbeveling
De Service Broker-functie wordt niet ondersteund in Azure SQL Database. Overweeg om te migreren naar Azure SQL Managed Instance dat servicebroker binnen hetzelfde exemplaar ondersteunt. U kunt ook migreren naar SQL Server op azure Virtual Machine.
Triggers met serverbereik
Titel: Trigger met serverbereik wordt niet ondersteund in Azure SQL Database
Categorie: Waarschuwing
Beschrijving
Een trigger is een speciaal type opgeslagen procedure dat wordt uitgevoerd als reactie op bepaalde acties in een tabel, zoals invoegen, verwijderen of bijwerken van gegevens. Triggers met serverbereik worden niet ondersteund in Azure SQL Database. Azure SQL Database biedt geen ondersteuning voor de volgende opties voor triggers: FOR LOGON, ENCRYPTION, WITH APPEND, NOT FOR REPLICATION, EXTERNAL NAME option (er is geen ondersteuning voor externe methoden), ALL SERVER Option (DDL Trigger), Trigger on a LOGON event (Logon Trigger), Azure SQL Database biedt geen ondersteuning voor CLR-triggers.
Aanbeveling
Gebruik in plaats daarvan trigger op databaseniveau. U kunt ook migreren naar Azure SQL Managed Instance of SQL Server op azure Virtual Machine.
Meer informatie: Transact-SQL-verschillen oplossen tijdens migratie naar SQL Database
SQL Agent-taken
Titel: SQL Server Agent-taken zijn niet beschikbaar in Azure SQL Database
Categorie: Waarschuwing
Beschrijving
SQL Server Agent is een Microsoft Windows-service die geplande beheertaken uitvoert, die taken worden genoemd in SQL Server. SQL Server Agent-taken zijn niet beschikbaar in Azure SQL Database.
Aanbeveling
Gebruik elastische taken (preview), die de vervanging zijn voor SQL Server Agent-taken in Azure SQL Database. Met elastische databasetaken voor Azure SQL Database kunt u op betrouwbare wijze T-SQL-scripts uitvoeren die meerdere databases omvatten terwijl u automatisch nieuwe pogingen uitvoert en uiteindelijk voltooiingsgaranties biedt. U kunt ook migreren naar Azure SQL Managed Instance of SQL Server op virtuele Azure-machines.
Meer informatie: Aan de slag met elastische databasetaken (preview)
SQL Database-grootte
Titel: Azure SQL Database biedt geen ondersteuning voor databasegrootte van meer dan 100 TB.
Categorie: Probleem
Beschrijving
De grootte van de database is groter dan de maximaal ondersteunde grootte van 100 TB.
Aanbeveling
Evalueer of de gegevens kunnen worden gearchiveerd of gecomprimeerd of in meerdere databases worden geshard. U kunt ook migreren naar SQL Server op azure Virtual Machine.
Meer informatie: vCore-resourcelimieten
SQL Mail
Titel: SQL Mail is stopgezet.
Categorie: Waarschuwing
Beschrijving
SQL Mail is stopgezet en verwijderd in Azure SQL Database.
Aanbeveling
Overweeg om te migreren naar Azure SQL Managed Instance of SQL Server op Azure Virtual Machines en Database Mail te gebruiken.
Meer informatie: Stopgezette database-enginefunctionaliteit in SQL Server
SystemProcedures110
Titel: Gedetecteerde instructies die verwijzen naar verwijderde door het systeem opgeslagen procedures die niet beschikbaar zijn in Azure SQL Database.
Categorie: Waarschuwing
Beschrijving
Het volgen van niet-ondersteunde systeem- en uitgebreide opgeslagen procedures kan niet worden gebruikt in Azure SQL Database - sp_dboption
, , sp_addserver
sp_dropalias
,sp_activedirectory_obj
sp_activedirectory_scp
, , . sp_activedirectory_start
Aanbeveling
Verwijder verwijzingen naar niet-ondersteunde systeemprocedures die zijn verwijderd in Azure SQL Database.
Meer informatie: Stopgezette database-enginefunctionaliteit in SQL Server
Traceringsvlaggen
Titel: Azure SQL Database biedt geen ondersteuning voor traceringsvlagmen
Categorie: Waarschuwing
Beschrijving
Traceringsvlagmen worden gebruikt om tijdelijk specifieke serverkenmerken in te stellen of om een bepaald gedrag uit te schakelen. Traceringsvlaggen worden vaak gebruikt voor het diagnosticeren van prestatieproblemen of voor het opsporen van fouten in opgeslagen procedures of complexe computersystemen. Azure SQL Database biedt geen ondersteuning voor traceringsvlagmen.
Aanbeveling
Bekijk de sectie betreffende objecten in Azure Migrate om alle traceringsvlagmen te bekijken die niet worden ondersteund in Azure SQL Database en te evalueren of ze kunnen worden verwijderd. U kunt ook migreren naar Azure SQL Managed Instance, dat ondersteuning biedt voor een beperkt aantal wereldwijde traceringsvlagmen of SQL Server op azure Virtual Machine.
Meer informatie: Transact-SQL-verschillen oplossen tijdens migratie naar SQL Database
Windows-verificatie
Titel: Databasegebruikers die zijn toegewezen met Windows-verificatie (geïntegreerde beveiliging) worden niet ondersteund in Azure SQL Database.
Categorie: Waarschuwing
Beschrijving
Azure SQL Database ondersteunt twee typen verificatie:
- SQL-verificatie: maakt gebruik van een gebruikersnaam en wachtwoord
- Microsoft Entra-verificatie: maakt gebruik van identiteiten die worden beheerd door Microsoft Entra ID (voorheen Azure Active Directory) en wordt ondersteund voor beheerde en geïntegreerde domeinen.
Databasegebruikers die zijn toegewezen met Windows-verificatie (geïntegreerde beveiliging) worden niet ondersteund in Azure SQL Database.
Aanbeveling
De lokale Active Directory federeren met Microsoft Entra ID. De Windows-identiteit kan vervolgens worden vervangen door de equivalente Microsoft Entra-identiteiten. U kunt ook migreren naar SQL Server op azure Virtual Machine.
Meer informatie: SQL Database-beveiligingsmogelijkheden
XP_cmdshell
Titel: xp_cmdshell
wordt niet ondersteund in Azure SQL Database.
Categorie: Probleem
Beschrijving
xp_cmdshell
, die een Windows-opdrachtshell maakt en een tekenreeks doorgeeft voor uitvoering, wordt niet ondersteund in Azure SQL Database.
Aanbeveling
Bekijk de sectie betreffende objecten in Azure Migrate om alle objecten te bekijken en xp_cmdshell
te evalueren of de verwijzing naar xp_cmdshell
of het betreffende object kan worden verwijderd. Overweeg ook Azure Automation te verkennen die automatisering en configuratieservice in de cloud levert. U kunt ook migreren naar SQL Server op azure Virtual Machine.
Gerelateerde inhoud
- Migratiehandleiding: SQL Server naar Azure SQL Database
- Service en hulpprogramma's voor gegevensmigratie
- Wat is Azure SQL Database?
- Azure total Cost of Ownership Calculator
- Cloud Adoption Framework voor Azure
- Aanbevolen procedures voor het migreren van kosten en het aanpassen van de grootte van workloads naar Azure
- Data Access Migration Toolkit (preview)
- Database Experimentation Assistant
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor