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:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Minnesoptimerade tabeller, nativt kompilerade lagrade procedurer och användardefinierade funktioner stöder inte hela Transact-SQL-funktionsytan som stöds av diskbaserade tabeller, tolkade Transact-SQL lagrade procedurer och användardefinierade funktioner. När du försöker använda någon av de funktioner som inte stöds returnerar servern ett fel.
Felmeddelandetexten anger typen av Transact-SQL -instruktion (funktion, åtgärd, alternativ till exempel) och namnet på funktionen eller nyckelordet Transact-SQL. De flesta funktioner som inte stöds returnerar fel 10794, med felmeddelandetexten som anger funktionen som inte stöds. I följande tabeller visas de Transact-SQL funktioner och nyckelord som kan visas i felmeddelandets text samt den korrigerande åtgärden för att lösa felet.
Mer information om funktioner som stöds med minnesoptimerade tabeller och inbyggda kompilerade lagrade procedurer finns i:
Databaser som använder In-Memory OLTP
I följande tabell visas de Transact-SQL funktioner som inte stöds och nyckelorden som kan visas i meddelandetexten för ett fel som involverar en In-Memory OLTP-databas. Tabellen visar också lösningen på felet.
| Typ | Namn | Lösning / Beslut |
|---|---|---|
| Option | AUTO_CLOSE | Databasalternativet AUTO_CLOSE=ON stöds inte med databaser som har en MEMORY_OPTIMIZED_DATA filgrupp. |
| Option | ATTACH_ÅTERSTÄLL_LOGG | Alternativet CREATE-databas ATTACH_REBUILD_LOG stöds inte med databaser som har en MEMORY_OPTIMIZED_DATA-filgrupp. |
| Egenskap | DATABASÖGONBLICKSBILD | Det går inte att skapa databasögonblicksbilder med databaser som har en MEMORY_OPTIMIZED_DATA filgrupp. |
| Egenskap | Replikering med hjälp av sync_method "databasögonblicksbild" eller "databasögonblickstecken" | Replikering med hjälp av sync_method "databasögonblicksbild" eller "databasögonblickstecken" stöds inte med databaser som har en MEMORY_OPTIMIZED_DATA filgrupp. |
| Egenskap | DBCC CHECKDB DBCC CHECKTABLE |
DBCC CHECKDB hoppar över de minnesoptimerade tabellerna i databasen. DBCC CHECKTABLE misslyckas för minnesoptimerade tabeller. |
Memory-optimerade tabeller
I följande tabell visas de Transact-SQL funktioner som inte stöds och nyckelorden som kan visas i meddelandetexten för ett fel som involverar en minnesoptimerad tabell. Tabellen visar också lösningen på felet.
| Typ | Namn | Lösning / Beslut |
|---|---|---|
| Egenskap | ON | Minnesoptimerade tabeller kan inte placeras i ett filgrupps- eller partitionsschema. Ta bort ON-satsen från CREATE TABLE-instruktionen . Alla minnesoptimerade tabeller mappas till minnesoptimerad filgrupp. |
| Datatyp | Namn på datatyp | Den angivna datatypen stöds inte. Ersätt typen med en av de datatyper som stöds. Mer information finns i Datatyper som stöds för In-Memory OLTP. |
| Egenskap | Beräknade kolumner |
Gäller för: SQL Server 2014 (12.x) och SQL Server 2016 (13.x) Beräknade kolumner stöds inte för minnesoptimerade tabeller. Ta bort de beräknade kolumnerna från CREATE TABLE-instruktionen . Azure SQL Database och SQL Server som startar SQL Server 2017 (14.x) stöder beräknade kolumner i minnesoptimerade tabeller och index. |
| Egenskap | Replication | Replikering stöds inte med minnesoptimerade tabeller. |
| Egenskap | FILESTREAM | FILESTREAM-lagring stöds inte för kolumner i minnesoptimerade tabeller. Ta bort nyckelordet FILESTREAM från kolumndefinitionen. |
| Egenskap | SPARSE | Kolumner med minnesoptimerade tabeller kan inte definieras som SPARSE. Ta bort nyckelordet SPARSE från kolumndefinitionen. |
| Egenskap | ROWGUIDCOL | Alternativet ROWGUIDCOL stöds inte för kolumner med minnesoptimerade tabeller. Ta bort nyckelordet ROWGUIDCOL från kolumndefinitionen. |
| Egenskap | FRÄMMANDE NYCKEL |
Gäller för: Azure SQL Database och SQL Server från och med SQL Server 2016 (13.x) För minnesoptimerade tabeller stöds begränsningar för UTLÄNDSKA NYCKLAR endast för utländska nycklar som refererar till primärnycklar i andra minnesoptimerade tabeller. Ta bort villkoret från tabelldefinitionen om sekundärnyckeln refererar till en unik begränsning. I SQL Server 2014 (12.x) stöds inte begränsningar för SEKUNDÄRNYCKEL med minnesoptimerade tabeller. |
| Egenskap | klustrat index | Ange ett icke-grupperat index. När det gäller ett primärnyckelindex måste du ange PRIMARY KEY NONCLUSTERED. |
| Egenskap | DDL inom transaktioner | Minnesoptimerade tabeller och inbyggda kompilerade lagrade procedurer kan inte skapas eller tas bort i kontexten för en användartransaktion. Starta inte en transaktion och se till att sessionsinställningen IMPLICIT_TRANSACTIONS är AV innan du kör CREATE- eller DROP-instruktionen. |
| Egenskap | DDL-utlösare | Minnesoptimerade tabeller och inbyggda kompilerade lagrade procedurer kan inte skapas eller tas bort om det finns en server- eller databasutlösare för DDL-åtgärden. Ta bort server- och databasutlösarna i CREATE/DROP TABLE och CREATE/DROP PROCEDURE. |
| Egenskap | HÄNDELSEMEDDELANDE | Minnesoptimerade tabeller och inbyggda kompilerade lagrade procedurer kan inte skapas eller tas bort om det finns en server- eller databashändelseavisering för DDL-åtgärden. Ta bort server- och databashändelsemeddelandena i CREATE TABLE eller DROP TABLE och CREATE PROCEDURE eller DROP PROCEDURE. |
| Egenskap | FileTable | Minnesoptimerade tabeller kan inte skapas som filtabeller. Ta bort argumentet AS FileTable från CREATE TABLE-instruktionen |
| Verksamhet | Uppdatering av primärnyckelkolumner | Det går inte att uppdatera primärnyckelkolumner i minnesoptimerade tabeller och tabelltyper. Om primärnyckeln behöver uppdateras tar du bort den gamla raden och infogar den nya raden med den uppdaterade primärnyckeln. |
| Verksamhet | skapa index | Index för minnesoptimerade tabeller måste anges i enlighet med instruktionen CREATE TABLE eller ALTER TABLE . |
| Verksamhet | SKAPA FULLTEXTINDEX | Fulltextindex stöds inte för minnesoptimerade tabeller. |
| Verksamhet | schemaändring | Minnesoptimerade tabeller och inbyggda kompilerade lagrade procedurer stöder inte vissa schemaändringar: Azure SQL Database och SQL Server från och med SQL Server 2017 (14.x): ALTER TABLE, ALTER PROCEDURE och sp_rename operationer stöds. Andra schemaändringar, till exempel tillägg av utökade egenskaper, stöds inte. SQL Server 2016 (13.x): ALTER TABLE- och ALTER PROCEDURE-åtgärder stöds. Andra schemaändringar, inklusive sp_rename, stöds inte. SQL Server 2014 (12.x): schemaändringar stöds inte. Om du vill ändra definitionen av en minnesoptimerad tabell eller intern kompilerad lagrad procedur släpper du först objektet och återskapar det sedan med önskad definition. |
| Verksamhet | TRUNCATE TABLE | TRUNCATE-åtgärden stöds inte för minnesoptimerade tabeller. Om du vill ta bort alla rader från en tabell, använd DELETE FROMtabell eller tappa och återskapa tabellen. |
| Verksamhet | ÄNDRA AUKTORISERING | Det går inte att ändra ägaren till en befintlig minnesoptimerad tabell eller internt kompilerad lagrad procedur. Ta bort och återskapa tabellen eller proceduren för att ändra ägarskapet. |
| Verksamhet | ÄNDRA SCHEMA | Överföring av en befintlig tabell eller inbyggt kompilerad lagrad procedur till ett annat schema stöds inte. Släpp och återskapa objektet som ska överföras mellan scheman. |
| Verksamhet | DBCC CHECKTABLE | DBCC CHECKTABLE stöds inte med minnesoptimerade tabeller. Utför en säkerhetskopia av MEMORY_OPTIMIZED_DATA filgrupp för att verifiera integriteten för kontrollpunktsfilerna på disken. |
| Egenskap | ANSI_PADDING AVSTÄNGD | Sessionsalternativet ANSI_PADDING måste vara PÅ när du skapar minnesoptimerade tabeller eller internt kompilerade lagrade procedurer. Kör SET ANSI_PADDING ON innan du kör CREATE-instruktionen. |
| Option | datakomprimering | Datakomprimering stöds inte för minnesoptimerade tabeller. Ta bort alternativet från tabelldefinitionen. |
| Egenskap | DTC | Minnesoptimerade tabeller och inbyggda kompilerade lagrade procedurer kan inte nås från distribuerade transaktioner. Använd SQL-transaktioner i stället. |
| Verksamhet | Minnesoptimerade tabeller som mål för MERGE | Minnesoptimerade tabeller kan inte vara målet för en MERGE-åtgärd . Använd INSERT-, UPDATE- och DELETE-instruktioner i stället. |
Indexar på minnesoptimerade tabeller
I följande tabell visas de Transact-SQL funktioner och nyckelord som kan visas i meddelandetexten för ett fel som involverar ett index i en minnesoptimerad tabell samt den korrigerande åtgärden för att lösa felet.
| Typ | Namn | Lösning / Beslut |
|---|---|---|
| Egenskap | Filtrerat index | Filtrerade index stöds inte med minnesoptimerade tabeller. Utelämna WHERE-satsen från indexspecifikationen. |
| Egenskap | Inkluderade kolumner | Det är inte nödvändigt att ange inkluderade kolumner för minnesoptimerade tabeller. Alla kolumner i den minnesoptimerade tabellen ingår implicit i varje minnesoptimerad index. |
| Verksamhet | TA BORT INDEX | Det går inte att ta bort index på minnesoptimerade tabeller. Du kan ta bort index med hjälp av ALTER TABLE. Mer information finns i Ändra Memory-Optimized tabeller. |
| Indexalternativ | Indexalternativ | Endast ett indexalternativ stöds – BUCKET_COUNT för HASH-index. |
Hash-index som inte är grupperade
I följande tabell visas de Transact-SQL-funktioner och nyckelord som kan förekomma i meddelandetexten för ett fel som involverar ett icke-klustrat hashindex, samt åtgärderna för att rätta till felet.
| Typ | Namn | Lösning / Beslut |
|---|---|---|
| Option | ASC/DESC | Icke-grupperade hash-index är inte ordnade. Ta bort nyckelorden ASC och DESC från indexnyckelspecifikationen. |
Förkompilerade lagrade procedurer och användardefinierade funktioner
I följande tabell visas de Transact-SQL funktioner och nyckelord som kan visas i meddelandetexten för ett fel med inbyggda kompilerade lagrade procedurer och användardefinierade funktioner, samt den korrigerande åtgärden för att lösa felet.
| Typ | Egenskap | Lösning / Beslut |
|---|---|---|
| Egenskap | Inlinje tabellvariabler | Tabelltyper kan inte deklareras infogade med variabeldeklarationer. Tabelltyper måste deklareras explicit med hjälp av en CREATE TYPE-instruktion . |
| Egenskap | Cursors | Markörer stöds inte på eller i internt kompilerade lagrade procedurer. När du kör proceduren från klienten använder du RPC i stället för markör-API:et. Med ODBC undviker du Transact-SQL-instruktionen EXECUTE och anger i stället namnet på proceduren direkt. När du kör proceduren från en Transact-SQL batch eller en annan lagrad procedur bör du undvika att använda en markör med den inbyggda kompilerade lagrade proceduren. När du skapar en inbyggt kompilerad lagrad procedur, i stället för att använda en markör, använder du set-baserad logik eller en WHILE-loop . |
| Egenskap | Standardvärden för icke-konstanta parametrar | När du använder standardvärden med parametrar för inbyggda kompilerade lagrade procedurer måste värdena vara konstanter. Ta bort eventuella jokertecken från parameterdeklarationerna. |
| Egenskap | EXTERNAL | CLR-lagrade procedurer kan inte kompileras internt. Ta antingen bort AS EXTERNAL-satsen eller alternativet NATIVE_COMPILATION från create procedure-instruktionen. |
| Egenskap | Numrerade lagrade procedurer | Inbyggda kompilerade lagrade procedurer kan inte numreras. Ta bort ;nummer från CREATE PROCEDURE-instruktionen. |
| Egenskap | infoga flerrads-INSERT ... VALUES-uttryck | Det går inte att infoga flera rader med samma INSERT-instruktion i en internt kompilerad lagrad procedur. Skapa INSERT-instruktioner för varje rad. |
| Egenskap | Vanliga tabelluttryck (CTE) | Vanliga tabelluttryck (CTE) stöds inte i inbyggda kompilerade lagrade procedurer. Skriv om frågan. |
| Egenskap | DATABEARBETNING | COMPUTE-satsen stöds inte. Ta bort den från frågan. |
| Egenskap | VÄLJ I | INTO-satsen stöds inte med SELECT-instruktionen. Skriv om frågan som INSERT INTOTableSELECT. |
| Egenskap | ofullständig infoga kolumnlista | I allmänhet måste värden i INSERT-instruktioner anges för alla kolumner i tabellen. Vi stöder dock standardbegränsningar och IDENTITY(1,1) kolumner i minnesoptimerade tabeller. Dessa kolumner kan, och när det gäller IDENTITY-kolumner måste, utelämnas från INSERT-kolumnlistan. |
| Egenskap | Function | Vissa inbyggda funktioner stöds inte i inbyggda kompilerade lagrade procedurer. Ta bort den avvisade funktionen från den lagrade proceduren. Mer information om inbyggda funktioner som stöds finns i Funktioner som stöds för internt kompilerade T-SQL-moduler, eller Internt kompilerade lagrade procedurer. |
| Egenskap | CASE |
Gäller för: SQL Server 2014 (12.x) och SQL Server startar SQL Server 2016 (13.x) CASE-uttryck stöds inte i frågor i inbyggda kompilerade lagrade procedurer. Skapa frågor för varje ärende. Mer information finns i Implementera ett CASE-uttryck i en intern kompilerad lagrad procedur. Azure SQL Database och SQL Server från och med SQL Server 2017 (14.x) stöder CASE-uttryck. |
| Egenskap | INSERT EXECUTE | Ta bort referensen. |
| Egenskap | EXECUTE | Stöds endast för att köra internt kompilerade lagrade procedurer och användardefinierade funktioner. |
| Egenskap | användardefinierade aggregeringar | Användardefinierade aggregeringsfunktioner kan inte användas i inbyggda kompilerade lagrade procedurer. Ta bort referensen till funktionen från proceduren. |
| Egenskap | bläddra i lägesmetadata | Internt kompilerade lagrade procedurer stöder inte metadata för bläddra-läge. Kontrollera att sessionsalternativet NO_BROWSETABLE är inställt på AV. |
| Egenskap | DELETE-sats med FROM-klausul |
FROM-satsen stöds inte för DELETE-instruktioner med en tabellkälla i inbyggda kompilerade lagrade procedurer. DELETE med FROM-satsen stöds när den används för att ange tabellen som du vill ta bort från. |
| Egenskap | UPPDATERA med FROM-sats | FROM-satsen stöds inte för UPDATE-instruktioner i internt kompilerade lagrade procedurer. |
| Egenskap | tillfälliga procedurer | Tillfälliga lagrade procedurer kan inte kompileras internt. Skapa antingen en permanent inbyggt kompilerad lagrad procedur eller en tillfällig tolkad Transact-SQL lagrad procedur. |
| Isoleringsnivå | LÄS EJ KOMMENDERADE | Isoleringsnivån READ UNCOMMITTED stöds inte för internt kompilerade lagrade procedurer. Använd en isoleringsnivå som stöds, till exempel SNAPSHOT. |
| Isoleringsnivå | LÄS BEKRÄFTAD | Isoleringsnivån READ COMMITTED stöds inte för internt kompilerade lagrade procedurer. Använd en isoleringsnivå som stöds, till exempel SNAPSHOT. |
| Egenskap | temporära tabeller | Tabeller i tempdb kan inte användas i inbyggda kompilerade lagrade procedurer. Använd i stället en tabellvariabel eller en minnesoptimerad tabell med DURABILITY=SCHEMA_ONLY. |
| Egenskap | DTC | Minnesoptimerade tabeller och inbyggda kompilerade lagrade procedurer kan inte nås från distribuerade transaktioner. Använd SQL-transaktioner i stället. |
| Egenskap | KÖR MED KOMPILERA OM | Alternativet MED RECOMPILE stöds inte för internt kompilerade lagrade procedurer. |
| Egenskap | Utförande från den dedikerade administratörsanslutningen. | Internt kompilerade lagrade procedurer kan inte köras från den dedikerade administratörsanslutningen (DAC). Använd en vanlig anslutning i stället. |
| Verksamhet | savepoint | Inbyggda lagrade procedurer kan inte anropas från transaktioner som har en aktiv sparandepunkt. Ta bort sparandepunkten från transaktionen. |
| Verksamhet | Ändra behörighet | Det går inte att ändra ägaren till en befintlig minnesoptimerad tabell eller internt kompilerad lagrad procedur. Ta bort och återskapa tabellen eller proceduren för att ändra ägarskap. |
| Operator | OPENROWSET | Den här operatorn stöds inte. Ta bort OPENROWSET från den inbyggda kompilerade lagrade proceduren. |
| Operator | OPENQUERY | Den här operatorn stöds inte. Ta bort OPENQUERY från den inbyggda kompilerade lagrade proceduren. |
| Operator | OPENDATASOURCE | Den här operatorn stöds inte. Ta bort OPENDATASOURCE från den inbyggda kompilerade lagrade proceduren. |
| Operator | OPENXML | Den här operatorn stöds inte. Ta bort OPENXML från den inbyggda kompilerade lagrade proceduren. |
| Operator | CONTAINSTABLE | Den här operatorn stöds inte. Ta bort CONTAINSTABLE från den inbyggda kompilerade lagrade proceduren. |
| Operator | FREETEXTTABLE | Den här operatorn stöds inte. Ta bort FREETEXTTABLE från den inbyggda kompilerade lagrade proceduren. |
| Egenskap | tabellvärdesfunktioner | Tabellvärdesfunktioner kan inte refereras från inbyggda kompilerade lagrade procedurer. En möjlig lösning för den här begränsningen är att lägga till logiken i tabellvärdesfunktionerna i procedurtexten. |
| Operator | CHANGETABLE | Den här operatorn stöds inte. Ta bort CHANGETABLE från den inbyggda kompilerade lagrade proceduren. |
| Operator | GOTO | Den här operatorn stöds inte. Använd andra processuella konstruktioner som WHILE. |
| Operator | FÖRSKJUTNING | Den här operatorn stöds inte. Ta bort OFFSET från den inbyggda kompilerade lagrade proceduren. |
| Operator | INTERSECT | Den här operatorn stöds inte. Ta bort INTERSECT från den inbyggda kompilerade lagrade proceduren. I vissa fall kan en INRE KOPPLING användas för att få samma resultat. |
| Operator | EXCEPT | Den här operatorn stöds inte. Ta bort EXCEPT från den inbyggda kompilerade lagrade proceduren. |
| Operator | APPLY |
Gäller för: SQL Server 2014 (12.x) och SQL Server startar SQL Server 2016 (13.x) Den här operatorn stöds inte. Ta bort APPLY från den inbyggda kompilerade lagrade proceduren. Azure SQL Database och SQL Server som startar SQL Server 2017 (14.x) stöder APPLY-operatorn i inbyggda kompilerade moduler. |
| Operator | PIVOT | Den här operatorn stöds inte. Ta bort PIVOT från den inbyggda kompilerade lagrade proceduren. |
| Operator | UNPIVOT | Den här operatorn stöds inte. Ta bort UNPIVOT från den inbyggda kompilerade lagrade proceduren. |
| Operator | INNEHÅLLER | Den här operatorn stöds inte. Ta bort CONTAINS från den inbyggda kompilerade lagrade proceduren. |
| Operator | FREETEXT | Den här operatorn stöds inte. Ta bort FREETEXT från den inbyggda kompilerade lagrade proceduren. |
| Operator | TSEQUAL | Den här operatorn stöds inte. Ta bort TSEQUAL från den internt kompilerade lagrade proceduren. |
| Operator | LIKE | Den här operatorn stöds inte. Ta bort LIKE från den inbyggda kompilerade lagrade proceduren. |
| Operator | NÄSTA VÄRDE FÖR | Det går inte att referera till sekvenser i inbyggda kompilerade lagrade procedurer. Hämta värdet med hjälp av tolkad Transact-SQL och skicka det sedan till den inbyggda kompilerade lagrade proceduren. Mer information finns i Implementera identitet i en Memory-Optimized tabell. |
| Ange alternativ | alternativ | SET-alternativ kan inte ändras i inbyggda kompilerade lagrade procedurer. Vissa alternativ kan anges med BEGIN ATOMIC-instruktionen. Mer information finns i avsnittet om atomiska block i Internt kompilerade lagrade procedurer. |
| Operand | TABELLEXEMPEL | Den här operatorn stöds inte. Ta bort TABLESAMPLE från den inbyggda kompilerade lagrade proceduren. |
| Option | RECOMPILE | Internt kompilerade lagrade procedurer kompileras vid skapandetillfället. Ta bort RECOMPILE från procedurdefinitionen. Du kan köra sp_recompile på en internt kompilerad lagrad procedur, vilket gör att den kompileras om vid nästa körning. |
| Option | KRYPTERING | Det här alternativet stöds inte. Ta bort KRYPTERING från procedurdefinitionen. |
| Option | FÖR REPLIKERING | Internt kompilerade lagrade procedurer kan inte skapas för replikering. Tog bort FÖR REPLIKERing från procedurdefinitionen. |
| Option | FÖR XML | Det här alternativet stöds inte. Ta bort FOR XML från den inbyggda kompilerade lagrade proceduren. |
| Option | FÖR ATT BLÄDDRA | Det här alternativet stöds inte. Ta bort FOR BROWSE från den inbyggda kompilerade lagrade proceduren. |
| Följ med tipset | HASH, MERGE | Internt kompilerade lagrade procedurer stöder endast kapslade loop-sammanfogningar. Hash- och sammanslagningskopplingar stöds inte. Ta bort kopplingstipset. |
| Frågetips | Frågetips | Det här frågetipset finns inte i internt kompilerade lagrade procedurer. Frågetips som stöds finns i Frågetips (Transact-SQL). |
| Option | PERCENT | Det här alternativet stöds inte med TOP-klausuler. Ta bort PROCENT från frågan i den inbyggda kompilerade lagrade proceduren. |
| Option | MED SLIPSAR |
Gäller för: SQL Server 2014 (12.x) och SQL Server 2016 (13.x) Det här alternativet stöds inte med TOP-klausuler. Ta bort WITH TIES från frågan i den inbyggda kompilerade lagrade proceduren. Azure SQL Database och SQL Server som startar SQL Server 2017 (14.x) stöder TOP WITH TIES. |
| Aggregatfunktion | Mängdfunktion | Alla aggregeringsfunktioner stöds inte. Mer information om aggregeringsfunktioner som stöds i inbyggda kompilerade T-SQL-moduler finns i Funktioner som stöds för internt kompilerade T-SQL-moduler. |
| Rangordningsfunktion | Rangordningsfunktion | Rangordningsfunktioner stöds inte i internt kompilerade lagrade procedurer. Ta bort dem från procedurdefinitionen. |
| Funktion | Function | Den här funktionen stöds inte. Mer information om funktioner som stöds i internt kompilerade T-SQL-moduler finns i Funktioner som stöds för internt kompilerade T-SQL-moduler. |
| Statement | -uttalande | Det här uttalandet stöds inte. Mer information om funktioner som stöds i internt kompilerade T-SQL-moduler finns i Funktioner som stöds för internt kompilerade T-SQL-moduler. |
| Egenskap | MIN och MAX används med binära strängar och teckensträngar | Mängdfunktionerna MIN och MAX kan inte användas för tecken- och binärsträngsvärden i inbyggda kompilerade lagrade procedurer. |
| Egenskap | GRUPPERA EFTER ALLA | ALL kan inte användas med GROUP BY-satser i internt kompilerade lagrade procedurer. Ta bort ALLA från GROUP BY-klausulet. |
| Egenskap | GRUPPERA EFTER () | Gruppering efter en tom lista stöds inte. Ta antingen bort GROUP BY-satsen eller inkludera kolumner i grupperingslistan. |
| Egenskap | ROLLUP | ROLLUP kan inte användas med GROUP BY-satser i nativt kompilerade lagrade procedurer. Ta bort ROLLUP från procedurdefinitionen. |
| Egenskap | CUBE | KUB kan inte användas med GROUP BY-satser i nativt kompilerade lagrade procedurer. Ta bort KUB från procedurdefinitionen. |
| Egenskap | GRUPPERINGSUPPSÄTTNINGAR | GRUPPERINGSUPPSÄTTNINGAR kan inte användas med GROUP BY-satser i nativt kompilerade lagrade procedurer. Ta bort GRUPPERINGSUPPSÄTTNINGAR från procedurdefinitionen. |
| Egenskap | BEGIN TRANSACTION (påbörja transaktion), COMMIT TRANSACTION (bekräfta transaktion) OCH ROLLBACK TRANSACTION (återställa transaktion) | Använd ATOMIC-block för att kontrollera transaktioner och felhantering. Mer information finns i Atomblock. |
| Egenskap | Deklarationer av infogade tabellvariabler. | Tabellvariabler måste referera till explicit definierade minnesoptimerade tabelltyper. Du bör skapa en minnesoptimerad tabelltyp och använda den typen för variabeldeklarationen i stället för att ange typen direkt. |
| Egenskap | Diskbaserade tabeller | Diskbaserade tabeller kan inte nås från inbyggda kompilerade lagrade procedurer. Ta bort referenser till diskbaserade tabeller från inbyggda kompilerade lagrade procedurer. Eller migrera de diskbaserade tabellerna till minnesoptimerade. |
| Egenskap | Views | Det går inte att komma åt vyer från inbyggda kompilerade lagrade procedurer. I stället för vyer refererar du till de underliggande bastabellerna. |
| Egenskap | Tabellvärderade funktioner |
Gäller för: Azure SQL Database och SQL Server, med start från SQL Server 2016 (13.x) Tabellvärdesfunktioner med flera instruktioner kan inte nås från nativt kompilerade T-SQL-moduler. Infogade tabellvärdesfunktioner stöds, men måste skapas MED NATIVE_COMPILATION. Gäller för: SQL Server 2014 (12.x) Tabellvärdesfunktioner kan inte refereras från inbyggda kompilerade T-SQL-moduler. |
| Option | Ta bort referens | |
| Egenskap | DDL | Ingen DDL stöds i internt kompilerade T-SQL-moduler. |
| Option | STATISTIK-XML | Stöds inte. När du kör en fråga, med STATISTICS XML aktiverat, returneras XML-innehållet utan den delen som gäller den inhemskt kompilerade lagrade proceduren. |
Transaktioner som har åtkomst till minnesoptimerade tabeller
I följande tabell visas de Transact-SQL funktioner och nyckelord som kan visas i meddelandetexten för ett fel som involverar transaktioner som har åtkomst till minnesoptimerade tabeller samt den korrigerande åtgärden för att lösa felet.
| Typ | Namn | Lösning / Beslut |
|---|---|---|
| Egenskap | savepoint | Det går inte att skapa explicita savepoints i transaktioner som har åtkomst till minnesoptimerade tabeller. |
| Egenskap | bunden transaktion | Bundna sessioner kan inte delta i transaktioner som har åtkomst till minnesoptimerade tabeller. Bind inte sessionen innan du kör proceduren. |
| Egenskap | DTC | Transaktioner som har åtkomst till minnesoptimerade tabeller kan inte vara distribuerade transaktioner. |