Transact-SQL konstruktioner som inte stöds av In-Memory OLTP

gäller för:SQL ServerAzure SQL DatabaseAzure 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 PRINT 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.

Se även

Migrera till In-Memory OLTP-