Costrutti Transact-SQL non supportati da OLTP in memoriaTransact-SQL Constructs Not Supported by In-Memory OLTP

QUESTO ARGOMENTO SI APPLICA A: sìSQL Server (a partire dalla versione 2016)sìDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Le tabelle con ottimizzazione per la memoria, le stored procedure compilate in modo nativo e le funzioni definite dall'utente non supportano la superficie di attacco totale di Transact-SQLTransact-SQL supportata dalle tabelle basate su disco, dalle stored procedure Transact-SQLTransact-SQL interpretate e dalle funzioni definite dall'utente.Memory-optimized tables, natively compiled stored procedures, and user-defined functions do not support the full Transact-SQLTransact-SQL surface area that is supported by disk-based tables, interpreted Transact-SQLTransact-SQL stored procedures, and user-defined functions. Quando si tenta di usare una delle funzionalità non supportate, il server restituisce un errore.When attempting to use one of the unsupported features, the server returns an error.

Nel testo del messaggio di errore viene indicato il tipo di istruzione Transact-SQLTransact-SQL (ad esempio funzionalità, operazione, opzione) e il nome della funzionalità o della parola chiave Transact-SQLTransact-SQL .The error message text mentions the type of Transact-SQLTransact-SQL statement (feature, operation, option, for example) and well as the name of the feature or Transact-SQLTransact-SQL keyword. La maggior parte delle funzionalità non supportate restituirà l'errore 10794, con il testo del messaggio di errore che indica la funzionalità non supportata.Most unsupported features will return error 10794, with the error message text indicating the unsupported feature. Nelle tabelle seguenti vengono elencate le parole chiave e le funzionalità di Transact-SQLTransact-SQL che possono essere incluse nel testo del messaggio di errore e l'azione correttiva per risolvere l'errore.The following tables list the Transact-SQLTransact-SQL features and keywords that can appear in the error message text, as well as the corrective action to resolve the error.

Per altre informazioni sulle funzionalità supportate con tabelle con ottimizzazione per la memoria e stored procedure compilate in modo nativo, vedere:For more information on supported features with memory-optimized tables and natively compiled stored procedures, see:

Database che utilizzano OLTP in memoriaDatabases That Use In-Memory OLTP

La tabella seguente elenca le funzionalità Transact-SQLTransact-SQL non supportate e le parole chiave che possono essere incluse nel testo del messaggio di un errore relativo a un database OLTP in memoria.The following table lists the Transact-SQLTransact-SQL features that are not supported, and the keywords that can appear in the message text of an error involving an In-Memory OLTP database. La tabella include anche una risoluzione dell'errore.The table also lists the resolution for the error.

TipoType NomeName SoluzioneResolution
OpzioneOption AUTO_CLOSEAUTO_CLOSE L'opzione di database AUTO_CLOSE=ON non è supportata con i database che contengono un filegroup MEMORY_OPTIMIZED_DATA.The database option AUTO_CLOSE=ON is not supported with databases that have a MEMORY_OPTIMIZED_DATA filegroup.
OpzioneOption ATTACH_REBUILD_LOGATTACH_REBUILD_LOG L'opzione di database CREATE ATTACH_REBUILD_LOG non è supportata con i database contenenti un filegroup MEMORY_OPTIMIZED_DATA.The CREATE database option ATTACH_REBUILD_LOG is not supported with databases that have a MEMORY_OPTIMIZED_DATA filegroup.
FunzionalitàFeature DATABASE SNAPSHOTDATABASE SNAPSHOT La creazione di snapshot del database non è supportata con i database che contengono un filegroup MEMORY_OPTIMIZED_DATA.Creating database snapshots is not supported with databases that have a MEMORY_OPTIMIZED_DATA filegroup.
FunzionalitàFeature Replica che utilizza 'database snapshot' o 'database snapshot character' come sync_methodReplication using the sync_method 'database snapshot' or 'database snapshot character' La replica che utilizza 'database snapshot' or 'database snapshot character' come sync_method non è supportata con i database che contengono un filegroup MEMORY_OPTIMIZED_DATA.Replication using the sync_method 'database snapshot' or 'database snapshot character' is not supported with databases that have a MEMORY_OPTIMIZED_DATA filegroup.
FunzionalitàFeature DBCC CHECKDBDBCC CHECKDB

DBCC CHECKTABLEDBCC CHECKTABLE
DBCC CHECKDB ignora le tabelle con ottimizzazione per la memoria nel database.DBCC CHECKDB skips the memory-optimized tables in the database.

DBCC CHECKTABLE avrà esito negativo per le tabelle con ottimizzazione per la memoria.DBCC CHECKTABLE will fail for memory-optimized tables.

Tabelle con ottimizzazione per la memoriaMemory-Optimized Tables

La tabella seguente elenca le funzionalità Transact-SQLTransact-SQL non supportate e le parole chiave che possono essere incluse nel testo del messaggio di un errore relativo a una tabella con ottimizzazione per la memoria.The following table lists the Transact-SQLTransact-SQL features that are not supported, and the keywords that can appear in the message text of an error involving a memory-optimized table. La tabella include anche una risoluzione dell'errore.The table also lists the resolution for the error.

TipoType NomeName SoluzioneResolution
FunzionalitàFeature ONON Le tabelle con ottimizzazione per la memoria non possono essere posizionate in uno schema di partizione o filegroup.Memory-optimized tables cannot be placed on a filegroup or partition scheme. Rimuovere la clausola ON dall'istruzione CREATE TABLE .Remove the ON clause from the CREATE TABLE statement.

Tutte le tabelle con ottimizzazione per la memoria vengono mappate al filegroup con ottimizzazione per la memoria.All memory optimized tables are mapped to memory-optimized filegroup.
Tipo di datiData type Nome del tipo di datiData type name Il tipo di dati indicato non è supportato.The indicated data type is not supported. Sostituirlo con un tipo di dati supportato.Replace the type with one of the supported data types. Per altre informazioni, vedere Tipi di dati supportati.For more information, see Supported Data Types for In-Memory OLTP.
FunzionalitàFeature Colonne calcolateComputed columns Le colonne calcolate non sono supportate dalle tabelle con ottimizzazione per la memoria.Computed columns are not supported for memory-optimized tables. Rimuovere le colonne calcolate dall'istruzione CREATE TABLE .Remove the computed columns from the CREATE TABLE statement.

Si applica a: SQL Server 2017SQL Server 2017 CTP 1.1.Applies to: SQL Server 2017SQL Server 2017 CTP 1.1.
A partire da SQL Server 2017SQL Server 2017 CTP 1.1, le colonne calcolate sono supportate in indici e tabelle con ottimizzazione per la memoria.Beginning with SQL Server 2017SQL Server 2017 CTP 1.1, computed columns are supported in memory-optimized tables and indexes.
FunzionalitàFeature ReplicaReplication La replica non è supportata con le tabelle con ottimizzazione per la memoria.Replication is not supported with memory-optimized tables.
FunzionalitàFeature FILESTREAMFILESTREAM L'archiviazione FILESTREAM non è supportata dalle colonne delle tabelle con ottimizzazione per la memoria.FILESTREAM storage is not supported columns of memory-optimized tables. Rimuovere la parola chiave FILESTREAM dalla definizione della colonna.Remove the FILESTREAM keyword from the column definition.
FunzionalitàFeature SPARSESPARSE Le colonne delle tabelle con ottimizzazione per la memoria non possono essere definite come SPARSE.Columns of memory-optimized tables cannot be defined as SPARSE. Rimuovere la parola chiave SPARSE dalla definizione della colonna.Remove the SPARSE keyword from the column definition.
FunzionalitàFeature ROWGUIDCOLROWGUIDCOL L'opzione ROWGUIDCOL non è supportata dalle colonne delle tabelle con ottimizzazione per la memoria.The option ROWGUIDCOL is not supported for columns of memory-optimized tables. Rimuovere la parola chiave ROWGUIDCOL dalla definizione della colonna.Remove the ROWGUIDCOL keyword from the column definition.
FunzionalitàFeature FOREIGN KEYFOREIGN KEY Per le tabelle con ottimizzazione per la memoria, i vincoli FOREIGN KEY sono supportati solo per chiavi esterne che fanno riferimento a chiavi primarie.For memory-optimized tables, FOREIGN KEY constraints are only supported for foreign keys referencing primary keys. Rimuovere il vincolo dalla definizione della tabella se la chiave esterna fa riferimento a un vincolo univoco.Remove the constraint from the table definition if the foreign key references a unique constraint.
FunzionalitàFeature indice clusterclustered index Specificare un indice non cluster.Specify a nonclustered index. Nel caso di un indice di chiave primaria assicurarsi di specificare PRIMARY KEY NONCLUSTERED [HASH].In the case of a primary key index be sure to specify PRIMARY KEY NONCLUSTERED [HASH].
FunzionalitàFeature DDL all'interno delle transazioniDDL inside transactions Le tabelle con ottimizzazione per la memoria e le stored procedure compilate in modo nativo non possono essere create o eliminate nel contesto di una transazione utente.Memory-optimized tables and natively compiled stored procedures cannot be created or dropped in the context of a user transaction. Non avviare una transazione e assicurarsi che l'impostazione della sessione IMPLICIT_TRANSACTIONS sia OFF prima di eseguire l'istruzione CREATE o DROP.Do not start a transaction and ensure the session setting IMPLICIT_TRANSACTIONS is OFF before executing the CREATE or DROP statement.
FunzionalitàFeature trigger DDLDDL triggers Le tabelle con ottimizzazione per la memoria e le stored procedure compilate in modo nativo non possono essere create o eliminate se esiste un trigger di database o di server per l'operazione DDL.Memory-optimized tables and natively compiled stored procedures cannot be created or dropped if there is a server or database trigger for that DDL operation. Rimuovere i trigger di database e di server da CREATE/DROP TABLE e CREATE/DROP PROCEDURE.Remove the server and database triggers on CREATE/DROP TABLE and CREATE/DROP PROCEDURE.
FunzionalitàFeature EVENT NOTIFICATIONEVENT NOTIFICATION Le tabelle con ottimizzazione per la memoria e le stored procedure compilate in modo nativo non possono essere create o eliminate se esiste una notifica degli eventi di database o di server per l'operazione DDL.Memory-optimized tables and natively compiled stored procedures cannot be created or dropped if there is a server or database event notification for that DDL operation. Rimuovere le notifiche degli eventi di database e di server in CREATE TABLE o DROP TABLE e CREATE PROCEDURE o DROP PROCEDURE.Remove the server and database event notifications on CREATE TABLE or DROP TABLE and CREATE PROCEDURE or DROP PROCEDURE.
FunzionalitàFeature FileTableFileTable Le tabelle con ottimizzazione per la memoria non possono essere create come tabelle di file.Memory-optimized tables cannot be created as file tables. Rimuovere l'argomento AS FileTable dall'istruzione CREATE TABLE .Remove the argument AS FileTable from the CREATE TABLE statement
OperazioneOperation Aggiornamento di colonne chiave primariaUpdate of primary key columns Le colonne chiave primaria delle tabelle con ottimizzazione per la memoria e dei tipi di tabella non possono essere aggiornate.Primary key columns in memory-optimized tables and table types cannot be updated. Se la chiave primaria deve essere aggiornata, eliminare la vecchia riga e inserire una nuova riga con la chiave primaria aggiornata.If the primary key needs to be updated, delete the old row and insert the new row with the updated primary key.
OperazioneOperation CREATE INDEXCREATE INDEX Gli indici delle tabelle con ottimizzazione per la memoria devono essere specificati inline con l'istruzione CREATE TABLE o ALTER TABLE .Indexes on memory-optimized tables must be specified inline with the CREATE TABLE statement, or with the ALTER TABLE statement.
OperazioneOperation CREATE FULLTEXT INDEXCREATE FULLTEXT INDEX Gli indici full-text non sono supportati dalle tabelle con ottimizzazione per la memoria.Fulltext indexes are not supported for memory-optimized tables.
OperazioneOperation modifica schemaschema change Le tabelle con ottimizzazione per la memoria e le stored procedure compilate in modo nativo non supportano le modifiche dello schema, ad esempio sp_rename.Memory-optimized tables and natively compiled stored procedures do not support schema changes, for example, sp_rename.

Il tentativo di apportare modifiche allo schema genererà l'errore 12320.Attempting to make certain schema changes will generate error 12320. Le operazioni che richiedono una modifica alla versione dello schema, ad esempio la ridenominazione, non sono supportate nelle tabelle con ottimizzazione per la memoria.Operations that require a change to the schema version, for example renaming, are not supported with memory-optimized tables.

Sono consentite alcune modifiche dello schema apportate mediante ALTER TABLE e ALTER PROCEDURE.Certain schema changes using ALTER TABLE and ALTER PROCEDURE are allowed.

Si applica a: SQL Server 2016SQL Server 2016.Applies to: SQL Server 2016SQL Server 2016.
A partire da SQL Server 2016SQL Server 2016, sp_rename è supportato.Beginning with SQL Server 2016SQL Server 2016, sp_rename is supported.
OperazioneOperation TRUNCATE TABLETRUNCATE TABLE L'operazione TRUNCATE non è supportata dalle tabelle con ottimizzazione per la memoria.The TRUNCATE operation is not supported for memory-optimized tables. Per rimuovere tutte le righe da una tabella, eliminare tutte le righe usando DELETE FROMtable oppure eliminare e ricreare la tabella.To remove all rows from a table, delete all rows using DELETE FROMtable or drop and recreate the table.
OperazioneOperation ALTER AUTHORIZATIONALTER AUTHORIZATION La modifica del proprietario di una tabella con ottimizzazione per la memoria o di una stored procedure compilata in modo nativo non è supportata.Changing the owner of an existing memory-optimized table or natively compiled stored procedure is not supported. Eliminare e ricreare la tabella o la stored procedure per modificare la proprietà.Drop and recreate the table or procedure to change ownership.
OperazioneOperation ALTER SCHEMAALTER SCHEMA Trasferimento di un'entità a protezione diretta da uno schema a un altro.Transferring a securable between schemas.
OperazioneOperation DBCC CHECKTABLEDBCC CHECKTABLE DBCC CHECKTABLE non è supportato con le tabelle con ottimizzazione per la memoria.DBCC CHECKTABLE is not supported with memory-optimized tables.
FunzionalitàFeature ANSI_PADDING OFFANSI_PADDING OFF L'opzione di sessione ANSI_PADDING deve essere impostata su ON durante la creazione delle tabelle con ottimizzazione per la memoria e delle stored procedure compilate in modo nativo.The session option ANSI_PADDING must be ON when creating memory-optimized tables or natively compiled stored procedures. Eseguire SET ANSI_PADDING ON prima di eseguire l'istruzione CREATE.Execute SET ANSI_PADDING ON before running the CREATE statement.
OpzioneOption DATA_COMPRESSIONDATA_COMPRESSION La compressione dati non è supportata dalle tabelle con ottimizzazione per la memoria.Data compression is not supported for memory-optimized tables. Rimuovere l'opzione dalla definizione della tabella.Remove the option from the table definition.
FunzionalitàFeature DTCDTC Non è possibile accedere alle tabelle con ottimizzazione per la memoria e alle stored procedure compilate in modo nativo da transazioni distribuite.Memory-optimized tables and natively compiled stored procedures cannot be accessed from distributed transactions. Utilizzare le transazioni SQL.Use SQL transactions instead.
OperazioneOperation Tabelle con ottimizzazione per la memoria come destinazione di MERGEMemory-optimized tables as target of MERGE Le tabelle con ottimizzazione per la memoria non possono essere la destinazione di un'operazione MERGE .Memory-optimized tables cannot be the target of a MERGE operation. Utilizzare l'istruzione INSERT, UPDATEo DELETE .Use INSERT, UPDATE, or DELETE statements instead.

Indici in tabelle con ottimizzazione per la memoriaIndexes on Memory-Optimized Tables

Nella tabella seguente vengono elencate le parole chiave e le funzionalità di Transact-SQLTransact-SQL che possono essere inclusi nel testo del messaggio di un errore che interessa l'indice di una tabella con ottimizzazione per la memoria e l'azione correttiva per risolvere l'errore.The following table lists the Transact-SQLTransact-SQL features and keywords that can appear in the message text of an error involving an index on a memory-optimized table, as well as the corrective action to resolve the error.

TipoType NomeName SoluzioneResolution
FunzionalitàFeature Indice filtratoFiltered index Gli indici filtrati non sono supportati con le tabelle con ottimizzazione per la memoria.Filtered indexes are not supported with memory-optimized tables. Omettere la clausola WHERE dalla specifica dell'indice.Omit the WHERE clause from the index specification.
FunzionalitàFeature included_columnsIncluded columns Non è necessario specificare le colonne incluse per le tabelle con ottimizzazione per la memoria.Specifying included columns is not necessary for memory-optimized tables. Tutte le colonne della tabella con ottimizzazione per la memoria vengono incluse in modo implicito in ogni indice con ottimizzazione per la memoria.All columns of the memory-optimized table are implicitly included in every memory-optimized index.
OperazioneOperation DROP INDEXDROP INDEX L'eliminazione degli indici nelle tabelle con ottimizzazione per la memoria non è supportata.Dropping indexes on memory-optimized tables is not supported. È possibile eliminare gli indici mediante ALTER TABLE.You can delete indexes using ALTER TABLE.

Per altre informazioni, vedere Modifica di tabelle con ottimizzazione per la memoria.For more information, see Altering Memory-Optimized Tables.
Opzione dell'indiceIndex option Opzione di indiceIndex option È supportata solo un'opzione di indice: BUCKET_COUNT per gli indici HASH.Only one index option is supported – BUCKET_COUNT for HASH indexes.

Indici hash non clusterNonclustered Hash Indexes

Nella tabella seguente vengono elencate le parole chiave e le funzionalità di Transact-SQLTransact-SQL che possono essere incluse nel testo del messaggio di un errore che interessa un indice hash non cluster e l'azione correttiva per risolvere l'errore.The following table lists the Transact-SQLTransact-SQL features and keywords that can appear in the message text of an error involving a nonclustered hash index, as well as the corrective action to resolve the error.

TipoType NomeName SoluzioneResolution
OpzioneOption ASC/DESCASC/DESC Gli indici hash non cluster non sono ordinati.Nonclustered hash indexes are not ordered. Rimuovere le parole chiave ASC e DESC dalla specifica della chiave di indice.Remove the keywords ASC and DESC from the index key specification.

Funzioni definite dall'utente e stored procedure compilate in modo nativoNatively Compiled Stored Procedures and User-Defined Functions

La tabella seguente elenca le parole chiave e le funzionalità di Transact-SQLTransact-SQL che possono essere incluse nel testo del messaggio di un errore che interessa le stored procedure compilate in modo nativo, le funzioni definite dall'utente e l'azione correttiva per risolvere l'errore.The following table lists the Transact-SQLTransact-SQL features and keywords that can appear in the message text of an error involving natively compiled stored procedures and user-defined functions, as well as the corrective action to resolve the error.

TipoType FunzionalitàFeature SoluzioneResolution
FunzionalitàFeature Variabili di tabella inlineInline table variables I tipi di tabella non possono essere dichiarati inline con le dichiarazioni di variabili.Table types cannot be declared inline with variable declarations. I tipi di tabella devono essere dichiarati in modo esplicito utilizzando un'istruzione CREATE TYPE .Table types must be declared explicitly using a CREATE TYPE statement.
FunzionalitàFeature CursoriCursors I cursori non sono supportati nelle stored procedure compilate in modo nativo.Cursors are not supported on or in natively compiled stored procedures.

Quando si esegue la procedura dal client, usare RPC anziché l'API cursore.When executing the procedure from the client, use RPC rather than the cursor API. Con ODBC, evitare l'istruzione Transact-SQLTransact-SQL . EXECUTEe specificare direttamente il nome della procedura.With ODBC, avoid the Transact-SQLTransact-SQL statement EXECUTE, instead specify the name of the procedure directly.

Quando si esegue la procedura da un batch Transact-SQLTransact-SQL o da un'altra stored procedure, evitare di usare un cursore con la stored procedure compilata in modo nativo.When executing the procedure from a Transact-SQLTransact-SQL batch or another stored procedure, avoid using a cursor with the natively compiled stored procedure.

Quando si crea una stored procedure compilata in modo nativo, usare al posto del cursore la logica basata su set o un ciclo WHILE .When creating a natively compiled stored procedure, rather than using a cursor, use set-based logic or a WHILE loop.
FunzionalitàFeature Valori predefiniti del parametro non costantiNon-constant parameter defaults Quando si utilizzano i valori predefiniti con i parametri nelle stored procedure compilate in modo nativo, i valori devono essere costanti.When using default values with parameters on natively compiled stored procedures, the values must be constants. Rimuovere tutti i caratteri jolly dalle dichiarazioni di parametro.Remove any wildcards from the parameter declarations.
FunzionalitàFeature EXTERNALEXTERNAL Le stored procedure CLR non possono essere compilate in modo nativo.CLR stored procedures cannot be natively compiled. Rimuovere la clausola AS EXTERNAL o l'opzione NATIVE_COMPILATION dall'istruzione CREATE PROCEDURE.Either remove the AS EXTERNAL clause or the NATIVE_COMPILATION option from the CREATE PROCEDURE statement.
FunzionalitàFeature Stored procedure numerateNumbered stored procedures Le stored procedure compilate in modo nativo non possono essere numerate.Natively compiled stored procedures cannot be numbered. Rimuovere ;number dall'istruzione CREATE PROCEDURE .Remove the ;number from the CREATE PROCEDURE statement.
FunzionalitàFeature INSERT di più righe...multi-row INSERT … Istruzioni VALUESVALUES statements Non è possibile inserire più righe utilizzando la stessa istruzione INSERT in una stored procedure compilata in modo nativo.Cannot insert multiple rows using the same INSERT statement in a natively compiled stored procedure. Creare istruzioni INSERT per ogni riga.Create INSERT statements for each row.
FunzionalitàFeature Espressioni di tabella comuniCommon Table Expressions (CTEs) Le espressioni di tabella comuni (CTE) non sono supportate nelle stored procedure compilate in modo nativo.Common table expressions (CTE) are not supported in natively compiled stored procedures. Riformulare la query.Rewrite the query.
FunzionalitàFeature COMPUTECOMPUTE La clausola COMPUTE non è supportata.The COMPUTE clause is not supported. Rimuoverla dalla query.Remove it from the query.
FunzionalitàFeature SELECT INTOSELECT INTO La clausola INTO non è supportata con l'istruzione SELECT .The INTO clause is not supported with the SELECT statement. Riscrivere la query come p INTOTableSELECT.Rewrite the query as p INTOTableSELECT.
FunzionalitàFeature elenco delle colonne di inserimento incompletoincomplete insert column list In genere, nelle istruzioni INSERT i valori devono essere specificati per tutte le colonne della tabella.In general, in INSERT statements values must be specified for all columns in the table.

Tuttavia, nelle tabelle con ottimizzazione per la memoria Microsoft supporta i vincoli DEFAULT e le colonne IDENTITY(1,1).However, we do support DEFAULT constraints and IDENTITY(1,1) columns on memory optimized tables. Tali colonne possono essere, e nel caso delle colonne IDENTITY devono essere, omesse dall'elenco di colonne INSERT.These columns can be, and in the case of IDENTITY columns must be, omitted from the INSERT column list.
FunzionalitàFeature FunzioneFunction Alcune funzioni predefinite non sono supportate nelle stored procedure compilate in modo nativo.Some built-in functions are not supported in natively compiled stored procedures. Rimuovere la funzione rifiutata dalla stored procedure.Remove the rejected function from the stored procedure. Per altre informazioni sulle funzioni predefinite supportate, vedereFor more information about supported built-in functions, see
Funzionalità supportate per i moduli T-SQL compilati in modo nativooSupported Features for Natively Compiled T-SQL Modules, or
Stored procedure compilate in modo nativo.Natively Compiled Stored Procedures.
FunzionalitàFeature CASECASE L'istruzione CASE non è supportata nelle query all'interno di stored procedure compilate in modo nativo.The CASE statement is not supported in queries inside natively compiled stored procedures. Creare query per ogni istruzione CASE.Create queries for each case. Per altre informazioni, vedere Implementazione di un'istruzione CASE.For more information, see Implementing a CASE Expression in a Natively Compiled Stored Procedure.
FunzionalitàFeature INSERT EXECUTEINSERT EXECUTE Rimuovere il riferimento.Remove the reference.
FunzionalitàFeature EseguireEXECUTE Funzionalità supportata solo per eseguire le stored procedure compilate in modo nativo e le funzioni definite dall'utente.Supported only to execute natively compiled stored procedures and user-defined functions.
FunzionalitàFeature aggregazioni definite dall'utenteuser-defined aggregates Le funzioni di aggregazione definite dall'utente non possono essere utilizzate nelle stored procedure compilate in modo nativo.User-defined aggregate functions cannot be used in natively compiled stored procedures. Rimuovere il riferimento alla funzione dalla procedura.Remove the reference to the function from the procedure.
FunzionalitàFeature metadati in modalità browsebrowse mode metadata Nelle stored procedure compilate in modo nativo non è ancora previsto il supporto per i metadati in modalità browse.Natively compiled stored procedures do not support browse mode metadata. Accertarsi che l'opzione di sessione NO_BROWSETABLE sia impostata su OFF.Make sure the session option NO_BROWSETABLE is set to OFF.
FunzionalitàFeature DELETE con clausola FROMDELETE with FROM clause La clausola FROM non è supportata dalle istruzioni DELETE con un'origine della tabella nelle stored procedure compilate in modo nativo.The FROM clause is not supported for DELETE statements with a table source in natively compiled stored procedures.

DELETE con la clausola FROM è supportata quando viene utilizzata per indicare la tabella da cui eseguire l'eliminazione.DELETE with the FROM clause is supported when it is used to indicate the table to delete from.
FunzionalitàFeature UPDATE con clausola FROMUPDATE with FROM clause La clausola FROM non è supportata dalle istruzioni UPDATE nelle stored procedure compilate in modo nativo.The FROM clause is not supported for UPDATE statements in natively compiled stored procedures.
FunzionalitàFeature stored procedure temporaneetemporary procedures Le stored procedure temporanee non possono essere compilate in modo nativo.Temporary stored procedures cannot be natively compiled. Creare una stored procedure compilata in modo nativo permanente o una stored procedure Transact-SQLTransact-SQL temporaneamente interpretata.Either create a permanent natively compiled stored procedure or a temporary interpreted Transact-SQLTransact-SQL stored procedure.
Livello di isolamentoIsolation level READ UNCOMMITTEDREAD UNCOMMITTED Il livello di isolamento READ UNCOMMITTED non è supportato dalle stored procedure compilate in modo nativo.The isolation level READ UNCOMMITTED is not supported for natively compiled stored procedures. Utilizzare un livello di isolamento supportato, ad esempio SNAPSHOT.Use a supported isolation level, such as SNAPSHOT.
Livello di isolamentoIsolation level READ COMMITTEDREAD COMMITTED Il livello di isolamento READ COMMITTED non è supportato dalle stored procedure compilate in modo nativo.The isolation level READ COMMITTED is not supported for natively compiled stored procedures. Utilizzare un livello di isolamento supportato, ad esempio SNAPSHOT.Use a supported isolation level, such as SNAPSHOT.
FunzionalitàFeature tabelle temporaneetemporary tables Le tabelle del tempdb non possono essere utilizzate nelle stored procedure compilate in modo nativo.Tables in tempdb cannot be used in natively compiled stored procedures. In alternativa, usare una variabile di tabella o una tabella con ottimizzazione per la memoria con DURABILITY=SCHEMA_ONLY.Instead, use a table variable or a memory-optimized table with DURABILITY=SCHEMA_ONLY.
FunzionalitàFeature DTCDTC Non è possibile accedere alle tabelle con ottimizzazione per la memoria e alle stored procedure compilate in modo nativo da transazioni distribuite.Memory-optimized tables and natively compiled stored procedures cannot be accessed from distributed transactions. Utilizzare le transazioni SQL.Use SQL transactions instead.
FunzionalitàFeature EXECUTE WITH RECOMPILEEXECUTE WITH RECOMPILE L'opzione WITH RECOMPILE non è supportata dalle stored procedure compilate in modo nativo.The option WITH RECOMPILE is not supported for natively compiled stored procedures.
FunzionalitàFeature Esecuzione dalla connessione amministrativa dedicata.Execution from the dedicated administrator connection. Le stored procedure compilate in modo nativo non possono essere eseguite dalla connessione amministrativa dedicata.Natively compiled stored procedures cannot be executed from the dedicated admin connection (DAC). Utilizzare una connessione normale.Use a regular connection instead.
OperazioneOperation punto di salvataggiosavepoint Le stored procedure compilate in modo nativo non possono essere richiamate dalle transazioni che hanno un punto di salvataggio attivo.Natively compiled stored procedures cannot be invoked from transactions that have an active savepoint. Rimuovere il punto di salvataggio dalla transazione.Remove the savepoint from the transaction.
OperazioneOperation ALTER AUTHORIZATIONALTER AUTHORIZATION La modifica del proprietario di una tabella con ottimizzazione per la memoria o di una stored procedure compilata in modo nativo non è supportata.Changing the owner of an existing memory-optimized table or natively compiled stored procedure is not supported. Eliminare e ricreare la tabella o la stored procedure per modificare la proprietà.Drop and recreate the table or procedure to change ownership.
OperatoreOperator OPENROWSETOPENROWSET Questo operatore non è supportato.This operator is not supported. Rimuovere OPENROWSET dalla stored procedure compilata in modo nativo.Remove OPENROWSET from the natively compiled stored procedure.
OperatoreOperator OPENQUERYOPENQUERY Questo operatore non è supportato.This operator is not supported. Rimuovere OPENQUERY dalla stored procedure compilata in modo nativo.Remove OPENQUERY from the natively compiled stored procedure.
OperatoreOperator OPENDATASOURCEOPENDATASOURCE Questo operatore non è supportato.This operator is not supported. Rimuovere OPENDATASOURCE dalla stored procedure compilata in modo nativo.Remove OPENDATASOURCE from the natively compiled stored procedure.
OperatoreOperator OPENXMLOPENXML Questo operatore non è supportato.This operator is not supported. Rimuovere OPENXML dalla stored procedure compilata in modo nativo.Remove OPENXML from the natively compiled stored procedure.
OperatoreOperator CONTAINSTABLECONTAINSTABLE Questo operatore non è supportato.This operator is not supported. Rimuovere CONTAINSTABLE dalla stored procedure compilata in modo nativo.Remove CONTAINSTABLE from the natively compiled stored procedure.
OperatoreOperator FREETEXTTABLEFREETEXTTABLE Questo operatore non è supportato.This operator is not supported. Rimuovere FREETEXTTABLE dalla stored procedure compilata in modo nativo.Remove FREETEXTTABLE from the natively compiled stored procedure.
FunzionalitàFeature funzioni con valori di tabellatable-valued functions Non è possibile fare riferimento alle funzioni con valori di tabella nelle stored procedure compilate in modo nativo.Table-valued functions cannot be referenced from natively compiled stored procedures. Una soluzione alternativa possibile per questa restrizione consiste nell'aggiungere la logica nelle funzioni con valori di tabella al corpo della procedura.One possible workaround for this restriction is to add the logic in the table-valued functions to the procedure body.
OperatoreOperator CHANGETABLECHANGETABLE Questo operatore non è supportato.This operator is not supported. Rimuovere CHANGETABLE dalla stored procedure compilata in modo nativo.Remove CHANGETABLE from the natively compiled stored procedure.
OperatoreOperator GOTOGOTO Questo operatore non è supportato.This operator is not supported. Utilizzare altri costrutti procedurali come WHILE.Use other procedural constructs such as WHILE.
OperatoreOperator OFFSETOFFSET Questo operatore non è supportato.This operator is not supported. Rimuovere OFFSET dalla stored procedure compilata in modo nativo.Remove OFFSET from the natively compiled stored procedure.
OperatoreOperator INTERSECTINTERSECT Questo operatore non è supportato.This operator is not supported. Rimuovere INTERSECT dalla stored procedure compilata in modo nativo.Remove INTERSECT from the natively compiled stored procedure. In alcuni casi è possibile usare INNER JOIN per ottenere lo stesso risultato.In some cases an INNER JOIN can be used to obtain the same result.
OperatoreOperator EXCEPTEXCEPT Questo operatore non è supportato.This operator is not supported. Rimuovere EXCEPT dalla stored procedure compilata in modo nativo.Remove EXCEPT from the natively compiled stored procedure.
OperatoreOperator APPLYAPPLY Questo operatore non è supportato.This operator is not supported. Rimuovere APPLY dalla stored procedure compilata in modo nativo.Remove APPLY from the natively compiled stored procedure.

Si applica a: SQL Server 2017SQL Server 2017 CTP 1.1.Applies to: SQL Server 2017SQL Server 2017 CTP 1.1.
A partire da SQL Server 2017SQL Server 2017 CTP 1.1, l'operatore APPLY è supportato in moduli compilati in modo nativo.Beginning with SQL Server 2017SQL Server 2017 CTP 1.1, the APPLY operator is supported in natively compiled modules.
OperatoreOperator PIVOTPIVOT Questo operatore non è supportato.This operator is not supported. Rimuovere PIVOT dalla stored procedure compilata in modo nativo.Remove PIVOT from the natively compiled stored procedure.
OperatoreOperator UNPIVOTUNPIVOT Questo operatore non è supportato.This operator is not supported. Rimuovere UNPIVOT dalla stored procedure compilata in modo nativo.Remove UNPIVOT from the natively compiled stored procedure.
OperatoreOperator CONTAINSCONTAINS Questo operatore non è supportato.This operator is not supported. Rimuovere CONTAINS dalla stored procedure compilata in modo nativo.Remove CONTAINS from the natively compiled stored procedure.
OperatoreOperator FREETEXTFREETEXT Questo operatore non è supportato.This operator is not supported. Rimuovere FREETEXT dalla stored procedure compilata in modo nativo.Remove FREETEXT from the natively compiled stored procedure.
OperatoreOperator TSEQUALTSEQUAL Questo operatore non è supportato.This operator is not supported. Rimuovere TSEQUAL dalla stored procedure compilata in modo nativo.Remove TSEQUAL from the natively compiled stored procedure.
OperatoreOperator LIKELIKE Questo operatore non è supportato.This operator is not supported. Rimuovere LIKE dalla stored procedure compilata in modo nativo.Remove LIKE from the natively compiled stored procedure.
OperatoreOperator NEXT VALUE FORNEXT VALUE FOR Non è possibile fare riferimento alle sequenze all'interno di stored procedure compilate in modo nativo.Sequences cannot be referenced inside natively compiled stored procedures. Ottenere il valore utilizzando Transact-SQLTransact-SQLinterpretato, quindi passarlo alla stored procedure compilata in modo nativo.Obtain the value using interpreted Transact-SQLTransact-SQL, and then pass it into the natively compiled stored procedure. Per altre informazioni, vedere Implementazione di IDENTITY in una tabella con ottimizzazione per la memoria.For more information, see Implementing IDENTITY in a Memory-Optimized Table.
Opzione SETSet option opzioneoption Le opzioni SET non possono essere modificate all'interno di stored procedure compilate in modo nativo.SET options cannot be changed inside natively compiled stored procedures. Alcune opzioni possono essere impostate tramite l'istruzione BEGIN ATOMIC.Certain options can be set with the BEGIN ATOMIC statement. Per altre informazioni, vedere la sezione relativa ai blocchi atonici in Natively Compiled Stored Procedures.For more information, see the section on atonic blocks in Natively Compiled Stored Procedures.
OperandoOperand TABLESAMPLETABLESAMPLE Questo operatore non è supportato.This operator is not supported. Rimuovere TABLESAMPLE dalla stored procedure compilata in modo nativo.Remove TABLESAMPLE from the natively compiled stored procedure.
OpzioneOption RECOMPILERECOMPILE Le stored procedure compilate in modo nativo vengono compilate al momento della creazione.Natively compiled stored procedures are compiled at create time. Rimuovere RECOMPILE dalla definizione della procedura.Remove RECOMPILE from the procedure definition.

È possibile eseguire sp_recompile in una stored procedure compilata in modo nativo per ricompilarla alla successiva esecuzione.You can execute sp_recompile on a natively compiled stored procedure, which causes it to recompile on the next execution.
OpzioneOption ENCRYPTIONENCRYPTION Questa opzione non è supportata.This option is not supported. Rimuovere ENCRYPTION dalla definizione della procedura.Remove ENCRYPTION from the procedure definition.
OpzioneOption FOR REPLICATIONFOR REPLICATION Le stored procedure compilate in modo nativo non possono essere create per la replica.Natively compiled stored procedures cannot be created for replication. Rimuovere FOR REPLICATION dalla definizione della procedura.Removed FOR REPLICATION from the procedure definition.
OpzioneOption FOR XMLFOR XML Questa opzione non è supportata.This option is not supported. Rimuovere FOR XML dalla stored procedure compilata in modo nativo.Remove FOR XML from the natively compiled stored procedure.
OpzioneOption FOR BROWSEFOR BROWSE Questa opzione non è supportata.This option is not supported. Rimuovere FOR BROWSE dalla stored procedure compilata in modo nativo.Remove FOR BROWSE from the natively compiled stored procedure.
Hint per il joinJoin hint HASH, MERGEHASH, MERGE Nelle stored procedure compilate in modo nativo sono supportati solo i join a cicli annidati.Natively compiled stored procedures only support nested-loops joins. I join merge e hash non sono supportati.Hash and merge joins are not supported. Rimuovere l'hint per il join.Remove the join hint.
Hint per la queryQuery hint Hint per la queryQuery hint Questo hint per la query non è all'interno di stored procedure compilate in modo nativo.This query hint is not inside natively compiled stored procedures. Per gli hint per la query supportati, vedere Hint per la query (Transact-SQL).For supported query hints see Query Hints (Transact-SQL).
OpzioneOption PERCENTPERCENT Questa opzione non è supportata con le clausole TOP .This option is not supported with TOP clauses. Rimuovere PERCENT dalla query nella stored procedure compilata in modo nativo.Remove PERCENT from the query in the natively compiled stored procedure.
OpzioneOption WITH TIESWITH TIES Questa opzione non è supportata con le clausole TOP .This option is not supported with TOP clauses. Rimuovere WITH TIES dalla query nella stored procedure compilata in modo nativo.Remove WITH TIES from the query in the natively compiled stored procedure.
Funzione di aggregazioneAggregate function Funzione di aggregazioneAggregate function Questa clausola non è supportata.This clause is not supported. Per altre informazioni sulle funzioni di aggregazione delle stored procedure compilate in modo nativo, vedere Natively Compiled Stored Procedures.For more information about aggregate functions in natively compiled stored procedures, see Natively Compiled Stored Procedures.
Funzione di rangoRanking function Funzione di rangoRanking function Le funzioni di rango non sono supportate nelle stored procedure compilate in modo nativo.Ranking functions are not supported in natively compiled stored procedures. Rimuoverle dalla definizione della procedura.Remove them from the procedure definition.
FunzioneFunction FunzioneFunction Questa funzione non è supportata.This function is not supported. Rimuoverla dalla stored procedure compilata in modo nativo.Remove it from the natively compiled stored procedure.
.Statement IstruzioneStatement Questa istruzione non è supportata.This statement is not supported. Rimuoverla dalla stored procedure compilata in modo nativo.Remove it from the natively compiled stored procedure.
FunzionalitàFeature MIN e MAX utilizzati con stringhe binarie e di caratteriMIN and MAX used with binary and character strings Le funzioni di aggregazione MIN e MAX non possono essere utilizzate per i valori delle stringhe binarie e di caratteri all'interno di stored procedure compilate in modo nativo.The aggregate functions MIN and MAX cannot be used for character and binary string values inside natively compiled stored procedures.
FunzionalitàFeature GROUP BY ALLGROUP BY ALL ALL non può essere utilizzato con le clausole GROUP BY nelle stored procedure compilate in modo nativo.ALL cannot be used with GROUP BY clauses in natively compiled stored procedures. Rimuovere ALL dalla clausola GROUP BY.Remove ALL from the GROUP BY clause.
FunzionalitàFeature GROUP BY ()GROUP BY () il raggruppamento da un elenco vuoto non è supportato.Grouping by an empty list is not supported. Rimuovere la clausola GROUP BY o includere colonne nell'elenco di raggruppamento.Either remove the GROUP BY clause, or include columns in the grouping list.
FunzionalitàFeature ROLLUPROLLUP ROLLUP non può essere utilizzato con le clausole GROUP BY nelle stored procedure compilate in modo nativo.ROLLUP cannot be used with GROUP BY clauses in natively compiled stored procedures. Rimuovere ROLLUP dalla definizione della procedura.Remove ROLLUP from the procedure definition.
FunzionalitàFeature CUBECUBE CUBE non può essere utilizzato con le clausole GROUP BY nelle stored procedure compilate in modo nativo.CUBE cannot be used with GROUP BY clauses in natively compiled stored procedures. Rimuovere CUBE dalla definizione della procedura.Remove CUBE from the procedure definition.
FunzionalitàFeature GROUPING SETSGROUPING SETS GROUPING SETS non può essere utilizzato con le clausole GROUP BY nelle stored procedure compilate in modo nativo.GROUPING SETS cannot be used with GROUP BY clauses in natively compiled stored procedures. Rimuovere GROUPING SETS dalla definizione della procedura.Remove GROUPING SETS from the procedure definition.
FunzionalitàFeature BEGIN TRANSACTION, COMMIT TRANSACTION e ROLLBACK TRANSACTIONBEGIN TRANSACTION, COMMIT TRANSACTION, and ROLLBACK TRANSACTION Utilizzare i blocchi ATOMIC per controllare le transazioni e la gestione degli errori.Use ATOMIC blocks to control transactions and error handling. Per altre informazioni, vedere Atomic Blocks.For more information, see Atomic Blocks.
FunzionalitàFeature Dichiarazioni di variabili di tabelle inline.Inline table variable declarations. Le variabili di tabella devono fare riferimento ai tipi di tabella con ottimizzazione per la memoria definiti in modo esplicito.Table variables must reference explicitly defined memory-optimized table types. È consigliabile creare un tipo di tabella con ottimizzazione per la memoria e usare tale tipo per la dichiarazione di variabili, anziché specificare il tipo inline.You should create a memory-optimized table type and use that type for the variable declaration, rather than specifying the type inline.
FunzionalitàFeature Tabelle basate su discoDisk-based tables Non è possibile accedere alle tabelle basate su dico dalle stored procedure compilate in modo nativo.Disk-based tables cannot be accessed from natively compiled stored procedures. Rimuovere i riferimenti alle tabelle basate su disco dalle stored procedure compilate in modo nativo.Remove references to disk-based tables from the natively-compiled stored procedures. In alternativa, eseguire la migrazione delle tabelle basate su disco alle tabelle con ottimizzazione per la memoria.Or, migrate the disk-based table(s) to memory optimized.
FunzionalitàFeature VisteViews Non è possibile accedere alle viste dalle stored procedure compilate in modo nativo.Views cannot be accessed from natively compiled stored procedures. Anziché alle viste, fare riferimento alle tabelle di base sottostanti.Instead of views, reference the underlying base tables.
FunzionalitàFeature Funzioni con valori di tabellaTable valued functions Non è possibile accedere alle funzioni con valori di tabella dalle stored procedure compilate in modo nativo.Table-valued functions cannot be accessed from natively compiled stored procedures. Rimuovere i riferimenti alle funzioni con valori di tabella dalle stored procedure compilate in modo nativo.Remove references to table-valued functions from the natively compiled stored procedure.
OpzioneOption PRINTPRINT Rimuovere il riferimento.Remove reference
FunzionalitàFeature DDLDDL DDL non supportate.No DDL is supported.
OpzioneOption STATISTICS XMLSTATISTICS XML Non supportato.Not supported. Quando si esegue una query, con l'opzione STATISTICS XML abilitata, viene restituito il contenuto XML senza la parte per la stored procedure compilata in modo nativo.When you run a query, with STATISTICS XML enabled, the XML content is returned without the part for the natively compiled stored procedure.

Transazioni che accedono alle tabelle con ottimizzazione per la memoriaTransactions that Access Memory-Optimized Tables

Nella tabella seguente vengono elencate le parole chiave e le funzionalità di Transact-SQLTransact-SQL che possono essere incluse nel testo del messaggio di un errore che interessa le transazioni che accedono alle tabelle con ottimizzazione per la memoria e l'azione correttiva per risolvere l'errore.The following table lists the Transact-SQLTransact-SQL features and keywords that can appear in the message text of an error involving transactions that access memory-optimized tables, as well as the corrective action to resolve the error.

TipoType NomeName SoluzioneResolution
FunzionalitàFeature punto di salvataggiosavepoint La creazione di punti di salvataggio espliciti nelle transazioni che accedono alle tabelle con ottimizzazione per la memoria non è supportata.Creating explicit savepoints in transactions that access memory-optimized tables is not supported.
FunzionalitàFeature transazione associatabound transaction Le sessioni associate non possono partecipare alle transazioni che accedono alle tabelle con ottimizzazione per la memoria.Bound sessions cannot participate in transactions that access memory-optimized tables. Non associare la sessione prima di eseguire la procedura.Do not bind the session before executing the procedure.
FunzionalitàFeature DTCDTC Le transazioni che accedono alle tabelle con ottimizzazione per la memoria non possono essere transazioni distribuite.Transactions that access memory-optimized tables cannot be distributed transactions.

Vedere ancheSee Also

Migrazione a OLTP in memoriaMigrating to In-Memory OLTP