Anteckning
Å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.
När du migrerar din databas från SQL Server till Azure SQL Database kanske du upptäcker att dina SQL Server-databaser kräver viss omkonstruktion innan de kan migreras. Den här artikeln innehåller vägledning som hjälper dig att både utföra den här omkonstruktionen och förstå de underliggande orsakerna till varför omkonstruktionen är nödvändig. Om du vill identifiera inkompatibiliteter och migrera databaser till Azure SQL Database använder du Azure Data Migration Service.
Anmärkning
Microsoft Entra-ID kallades tidigare Azure Active Directory (Azure AD).
Översikt
De flesta Transact-SQL (T-SQL) funktioner som program använder stöds fullt ut i både Microsoft SQL Server och Azure SQL Database. Till exempel fungerar sql-kärnkomponenter som datatyper, operatorer, sträng-, aritmetiska, logiska och markörfunktioner på samma sätt i SQL Server och SQL Database. Det finns dock några T-SQL-skillnader i DDL-element (datadefinitionsspråk) och DML -element (datamanipuleringsspråk) som resulterar i T-SQL-instruktioner och frågor som endast delvis stöds (som vi diskuterar senare i den här artikeln).
Dessutom finns det vissa funktioner och syntax som inte stöds alls eftersom Azure SQL Database är utformat för att isolera funktioner från beroenden i systemdatabaserna och operativsystemet. Därför stöds inte de flesta instansnivåfunktioner i SQL Database. T-SQL-instruktioner och alternativ är inte tillgängliga om de konfigurerar alternativ på instansnivå, operativsystemkomponenter eller anger filsystemkonfiguration. När sådana funktioner krävs är ett lämpligt alternativ ofta tillgängligt på något annat sätt från SQL Database eller från en annan Azure-funktion eller tjänst.
Hög tillgänglighet är till exempel inbyggd i Azure SQL Database. T-SQL-instruktioner som rör tillgänglighetsgrupper stöds inte av SQL Database och dynamiska hanteringsvyer relaterade till AlwaysOn-tillgänglighetsgrupper stöds inte heller.
En lista över de funktioner som stöds och inte stöds av SQL Database finns i Funktionsjämförelse: Azure SQL Database och Azure SQL Managed Instance. Den här sidan kompletterar den artikeln och fokuserar på T-SQL-instruktioner.
T-SQL-syntaxinstruktioner med partiella skillnader
DDL-kärninstruktionerna är tillgängliga, men DDL-instruktionstillägg som rör funktioner som inte stöds, till exempel filplacering på disk, stöds inte.
- I SQL Server CREATE DATABASEochALTER DATABASE-instruktioner finns över tre dussin alternativ. Instruktionerna omfattar filplacering, FILESTREAM och alternativ för tjänstutjämning som endast gäller för SQL Server. Det kanske inte spelar någon roll om du skapar databaser i SQL Database innan du migrerar, men om du migrerar T-SQL-kod som skapar databaser bör du jämföra CREATE DATABASE (Azure SQL Database) med SQL Server-syntaxen i CREATE DATABASE (SQL Server T-SQL) för att se till att alla alternativ som du använder stöds.CREATE DATABASEför Azure SQL Database finns även alternativ för tjänstmål och elastiska pooler som endast gäller för SQL Database.
- Instruktionerna CREATE TABLEochALTER TABLEharFILETABLEochFILESTREAMalternativ som inte kan användas i SQL Database eftersom dessa funktioner inte stöds.
- Det går inte att skapa, ändra eller släppa användarobjekt som tabeller, vyer eller lagrade procedurer med hjälp av motsvarande CREATE-ALTERochDROP-instruktioner imasterdatabasen på en logisk server .
- 
              CREATE LOGINochALTER LOGIN-instruktioner stöds, men erbjuder inte alla tillgängliga alternativ i SQL Server. För att göra databasen mer portabel rekommenderar SQL Database att använda oberoende databasanvändare i stället för inloggningar när det är möjligt. Mer information finns i SKAPA INLOGGNING, ÄNDRA INLOGGNING och Auktorisera databasåtkomst till SQL Database, SQL Managed Instance och Azure Synapse Analytics.
T-SQL-syntax stöds inte i Azure SQL Database
Förutom T-SQL-instruktioner som rör funktioner som inte stöds som beskrivs i Funktionsjämförelse: Azure SQL Database och Azure SQL Managed Instance stöds inte följande instruktioner och grupper av instruktioner. Om databasen som ska migreras använder någon av följande funktioner kan du därför återskapa programmet för att eliminera dessa T-SQL-funktioner och -instruktioner.
- Sortering av systemobjekt.
- Anslutningsrelaterad: Slutpunktsuttryck. SQL Database stöder inte Windows-autentisering, men stöder Microsoft Entra-autentisering. Detta omfattar autentisering av Active Directory-huvudnamn federerade med Microsoft Entra-ID. Mer information finns i Microsoft Entra-autentisering för Azure SQL.
- Frågor mellan databaser och instanser med tre eller fyra delnamn. Tre delnamn som refererar till tempdbdatabasen och den aktuella databasen stöds. Elastisk fråga stöder skrivskyddade referenser till tabeller i andra MSSQL-databaser.
- Korsdatabasägarlänkning och databasegenskapen TRUSTWORTHY.
- 
              EXECUTE AS LOGIN. AnvändEXECUTE AS USERi stället.
- Utökningsbar nyckelhantering (EKM) för krypteringsnycklar. Transparent datakryptering (TDE) kundhanterade nycklar och Always Encrypted-kolumnhuvudnycklar kan lagras i Azure Key Vault.
- Händelse: händelsemeddelanden, frågemeddelanden.
- Filegenskaper: Syntax relaterad till databasfilnamn, placering, storlek och andra filegenskaper som hanteras automatiskt av SQL Database.
- Hög tillgänglighet: Syntax som rör hög tillgänglighet och databasåterställning, som hanteras av SQL Database. Detta inkluderar syntax för säkerhetskopiering, återställning, AlwaysOn, databasspegling, loggleverans, återställningsmodeller.
- Syntax som rör replikering av ögonblicksbilder, transaktioner och sammanslagningar, som inte är tillgängliga i SQL Database. Replikeringsprenumerationer stöds.
- Funktioner: fn_get_sql,fn_virtualfilestats,fn_virtualservernodes.
- Instanskonfiguration: Syntax relaterad till serverminne, arbetstrådar, CPU-tillhörighet, spårningsflaggor. Använd tjänstnivåer och beräkningsstorlekar i stället.
- 
              KILL STATS JOB.
- 
              OPENQUERY,OPENDATASOURCEoch namn i fyra delar.
- .NET Framework: CLR-integrering (Common Language Runtime)
- Semantisk sökning
- Serverautentiseringsuppgifter: Använd autentiseringsuppgifter med databasomfattning i stället.
- Behörigheter på servernivå: GRANT,REVOKEochDENYför behörigheter på servernivå stöds inte. Vissa behörigheter på servernivå ersätts av behörigheter på databasnivå eller beviljas implicit av inbyggda serverroller. Vissa DMV:er på servernivå och katalogvyer har liknande vyer på databasnivå.
- SET REMOTE_PROC_TRANSACTIONS
- SHUTDOWN
- sp_addmessage
- 
              sp_configureochRECONFIGURE. ALTER DATABASE SCOPED CONFIGURATION stöds.
- sp_helpuser
- sp_migrate_user_to_contained
- SQL Server-agent: Syntax som förlitar sig på SQL Server-agenten msdbeller databasen: aviseringar, operatorer, centrala hanteringsservrar. Använd skript, till exempel PowerShell, i stället.
- SQL Server-granskning: Använd SQL Database-granskning i stället.
- SQL Server-spårning.
- Spåra flaggor.
- T-SQL-felsökning.
- Utlösare för serveromfång eller inloggning.
- 
              USEinstruktion: Om du vill ändra databaskontexten till en annan databas måste du skapa en ny anslutning till databasen.
Fullständig T-SQL-referens
Mer information om T-SQL-grammatik, användning och exempel finns iTransact-SQL referens (databasmotor).
Om taggarna "Gäller för"
T-SQL-referensen innehåller artiklar som rör alla de senaste SQL Server-versionerna. Under artikelrubriken finns ett ikonfält som visar MSSQL-plattformar och anger tillämplighet. Till exempel introducerades tillgänglighetsgrupper i SQL Server 2012. Artikeln SKAPA TILLGÄNGLIGHETSGRUPP anger att -instruktionen gäller för SQL Server (från och med 2012). Instruktionen gäller inte för SQL Server 2008, SQL Server 2008 R2, Azure SQL Database, Azure Synapse Analytics eller Parallel Data Warehouse.
I vissa fall kan det allmänna ämnet för en artikel användas i en produkt, men det finns mindre skillnader mellan produkter. Skillnaderna anges i mitten av artikeln efter behov. Artikeln är till exempel CREATE TRIGGER tillgänglig i SQL Database. Men alternativet ALL SERVER för utlösare på servernivå anger att utlösare på servernivå inte kan användas i SQL Database. Använd utlösare på databasnivå i stället.