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 in plaats daarvan BULK INSERT
instructies converteren die lokale bestanden of bestandsshares gebruiken om bestanden uit Azure Blob Storage te gebruiken, wanneer u naar Azure SQL Database migreert. U kunt ook migreren naar SQL Server op azure-VM's.
COMPUTE-clausule
Titel: COMPUTE-clausule 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
kan worden 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;
Zie Stopgezette database-enginefunctionaliteit in SQL Servervoor meer informatie.
CLR-assemblies
Titel: SQL CLR-assemblies worden niet ondersteund in Azure SQL Database
Categorie: Probleem
beschrijving
Azure SQL Database biedt geen ondersteuning voor SQL CLR-assembly's.
aanbeveling
Er is momenteel geen manier om dit te bereiken in Azure SQL Database. Voor de aanbevolen alternatieve oplossingen moeten de toepassingscode en database gewijzigd worden zodat alleen assembly's die door Azure SQL Database worden ondersteund, worden gebruikt. U kunt ook migreren naar Azure SQL Managed Instance of SQL Server op virtuele Azure-machines.
Zie Niet-ondersteunde Transact-SQL verschillen in SQL Databasevoor meer informatie.
Cryptografische provider
Titel: Er is gebruikgemaakt van de CRYPTOGRAFISCHE PROVIDER MAKEN of WIJZIGEN CRYPTOGRAFISCHE PROVIDER, wat niet wordt ondersteund in Azure SQL Database
Categorie: Probleem
De Beschrijving
Azure SQL Database biedt geen ondersteuning voor CRYPTOGRAFISCHE PROVIDER-instructies omdat deze geen toegang heeft tot bestanden. Zie de sectie Beïnvloede 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 het gebruik van deze functies in alle objecten die vereist zijn. U kunt ook migreren naar SQL Server op azure-VM's.
Kruisdatabaseverwijzingen
titel: query's voor meerdere 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-machines.
Zie overzicht van elastische query's van Azure SQL Database (preview)voor meer informatie.
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-VM's.
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-hoofdalias
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.
Zie Stopgezette database-enginefunctionaliteit in SQL Servervoor meer informatie.
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.
Zie Stopgezette database-enginefunctionaliteit in SQL Servervoor meer informatie.
FASTFIRSTROW-aanwijzing
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).
Zie Stopgezette database-enginefunctionaliteit in SQL Servervoor meer informatie.
FILESTREAM
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-VM's.
Zie Streaming-blobs van en naar een Azure SQL-blogvoor meer informatie.
Gekoppelde server
titel: functionaliteit voor gekoppelde servers 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 "Elastic Database Query" (preview) om query's uit te voeren op de databases in Azure SQL Database.
Zie overzicht van elastische query's van Azure SQL Database (preview)voor meer informatie.
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 bekijken met BEHULP van BEGIN DISTRIBUTED 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 Instancevoor meer informatie.
U kunt ook migreren naar SQL Server op azure-VM's.
OPENROWSET (bulk)
Titel: OpenRowSet wordt in bulkbewerkingen met een niet-Azure Blob Storage-gegevensbron niet ondersteund in Azure SQL Database.
Categorie: Probleem
Description 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-machines
Zie Transact-SQL verschillen tijdens de migratie naar SQL Databaseoplossen voor meer informatie.
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-VM's.
Zie Transact-SQL verschillen tijdens de migratie naar SQL Databaseoplossen voor meer informatie.
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.
Zie Stopgezette database-enginefunctionaliteit in SQL Servervoor meer informatie.
Niet-ANSI rechterouterkoppeling
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.
Zie Stopgezette database-enginefunctionaliteit in SQL Servervoor meer informatie.
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
Herschrijf uitspraken om het ANSI-standaard AS-trefwoord op te nemen bij het aliassen van een tabel of kolom. Als een kolom bijvoorbeeld NEXT heet en die kolom als WAARDE wordt gealiaseerd, 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 veroorzaakt query SELECT Col1 FROM NEXT VALUE
een fout wanneer een tabel met de naam NEXT als WAARDE wordt aangeduid. De query moet dan worden herschreven als SELECT Col1 FROM NEXT AS VALUE
.
RAISERROR
nl-NL: Titel: Verouderde RAISERROR-aanroepen moeten worden vervangen door moderne equivalenten.
Categorie: Waarschuwing
Beschrijving
RAISERROR-aanroepen zoals 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 van BEGIN TRY { } END TRY BEGIN CATCH { THROW; } END CATCH
haalbaar is.
Zie Stopgezette database-enginefunctionaliteit in SQL Servervoor meer informatie.
Serveraudits
titel: Azure SQL Database-auditfuncties 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 virtuele Azure-machines.
Zie Auditing voor Azure SQL Database en Azure Synapse Analyticsvoor meer informatie.
Serverinloggegevens
Titel: Inloggegevens op serverniveau worden 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 op SQL Server-niveau zijn gemaakt.
aanbeveling
Azure SQL Database ondersteunt databasereferenties. Converteer servergeoriënteerde referenties naar databasegeoriënteerde referenties. U kunt ook migreren naar Azure SQL Managed Instance of SQL Server op virtuele Azure-machines.
Zie CREATE DATABASE SCOPED CREDENTIAL voor meer informatie
Servicebroker
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-VM's.
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 optie (er is geen ondersteuning voor externe methoden), ALL SERVER Optie (DDL Trigger), Trigger bij een LOGON-gebeurtenis (Logon Trigger). Daarnaast biedt Azure SQL Database geen ondersteuning voor CLR-triggers.
Aanbevelingen
Gebruik in plaats daarvan trigger op databaseniveau. U kunt ook migreren naar Azure SQL Managed Instance of SQL Server op virtuele Azure-machines.
Zie Transact-SQL verschillen tijdens de migratie naar SQL Databaseoplossen voor meer informatie.
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, die de vervanging zijn voor SQL Server Agent-taken in Azure SQL Database. Met elastische taken voor Azure SQL Database kunt u op betrouwbare wijze T-SQL-scripts uitvoeren die meerdere databases omvatten terwijl u automatisch opnieuw probeert en uiteindelijk voltooiingsgaranties biedt. U kunt ook migreren naar Azure SQL Managed Instance of SQL Server op virtuele Azure-machines. Zie Elastische taken in Azure SQL Databasevoor meer informatie.
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-VM's.
Zie vCore-resourcelimietenvoor meer informatie.
SQL Mail
Titel: SQL Mail is beëindigd.
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.
Zie Stopgezette database-enginefunctionaliteit in SQL Server voor meer informatie
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.
Zie Stopgezette database-enginefunctionaliteit in SQL Server voor meer informatie
Traceringsvlagmen
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 Virtuele Azure-machines.
Zie Transact-SQL verschillen tijdens de migratie naar SQL Databaseoplossen voor meer informatie.
Windows-verificatie
Titel: databasegebruikers die zijn toegewezen met Windows-authenticatie (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-VM's.
Zie SQL Database-beveiligingsmogelijkhedenvoor meer informatie.
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 met behulp van xp_cmdshell
en 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-VM's.
Verwante inhoud
- Migratiehandleiding: SQL Server naar Azure SQL Database
- Services en hulpprogramma's die beschikbaar zijn voor scenario's voor gegevensmigratie
- Wat is Azure SQL Database?
- Azure Total Cost of Ownership Calculator
- Cloud Adoptiekader voor Azure
- Beste praktijken voor het kostberekenen en schalen van workloads bij migratie naar Azure