Costrutti Transact-SQL non supportati da OLTP in memoria
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure
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-SQL supportata dalle tabelle basate su disco, dalle stored procedure Transact-SQL interpretate e dalle funzioni definite dall'utente. Quando si tenta di usare una delle funzionalità non supportate, il server restituisce un errore.
Nel testo del messaggio di errore viene indicato il tipo di istruzione Transact-SQL (ad esempio funzionalità, operazione, opzione) e il nome della funzionalità o della parola chiave Transact-SQL. La maggior parte delle funzionalità non supportate restituirà l'errore 10794, con il testo del messaggio di errore che indica la funzionalità non supportata. Nelle tabelle seguenti vengono elencate le parole chiave e le funzionalità di Transact-SQL che possono essere incluse nel testo del messaggio di errore e l'azione correttiva per risolvere l'errore.
Per altre informazioni sulle funzionalità supportate con tabelle ottimizzate per la memoria e stored procedure compilate in modo nativo, vedere:
Problemi di migrazione relativi alle stored procedure compilate in modo nativo
Funzionalità di SQL Server non supportate per OLTP in memoria
Database che utilizzano OLTP in memoria
La tabella seguente elenca le funzionalità Transact-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. La tabella include anche una risoluzione dell'errore.
Type | Nome | Risoluzione |
---|---|---|
Opzione | AUTO_CLOSE | L'opzione di database AUTO_CLOSE=ON non è supportata con i database che contengono un filegroup MEMORY_OPTIMIZED_DATA. |
Opzione | ATTACH_REBUILD_LOG | L'opzione di database CREATE ATTACH_REBUILD_LOG non è supportata con i database contenenti un filegroup MEMORY_OPTIMIZED_DATA. |
Funzionalità | DATABASE SNAPSHOT | La creazione di snapshot del database non è supportata con i database che contengono un filegroup MEMORY_OPTIMIZED_DATA. |
Funzionalità | Replica che utilizza 'database snapshot' o 'database snapshot character' come sync_method | 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. |
Funzionalità | DBCC CHECKDB DBCC CHECKTABLE |
DBCC CHECKDB ignora le tabelle ottimizzate per la memoria nel database. DBCC CHECKTABLE avrà esito negativo per le tabelle ottimizzate per la memoria. |
Tabelle ottimizzate per la memoria
La tabella seguente elenca le funzionalità Transact-SQL non supportate e le parole chiave che possono essere incluse nel testo del messaggio di un errore relativo a una tabella ottimizzata per la memoria. La tabella include anche una risoluzione dell'errore.
Type | Nome | Risoluzione |
---|---|---|
Funzionalità | In... | Le tabelle con ottimizzazione per la memoria non possono essere posizionate in uno schema di partizione o filegroup. Rimuovere la clausola ON dall'istruzione CREATE TABLE . Tutte le tabelle ottimizzate per la memoria vengono mappate al filegroup ottimizzato per la memoria. |
Tipo di dati | Nome del tipo di dati | Il tipo di dati indicato non è supportato. Sostituirlo con un tipo di dati supportato. Per altre informazioni, vedere Tipi di dati supportati. |
Funzionalità | Colonne calcolate | Si applica a: SQL Server 2014 (12.x) SQL Server 2016 (13.x) Le colonne calcolate non sono supportate dalle tabelle ottimizzate per la memoria. Rimuovere le colonne calcolate dall'istruzione CREATE TABLE . Database SQL di Azure e SQL Server a partire da SQL Server 2017 (14.x) supportano le colonne calcolate nelle tabelle e negli indici ottimizzati per la memoria. |
Funzionalità | Replica | La replica non è supportata con le tabelle ottimizzate per la memoria. |
Funzionalità | FILESTREAM | L'archiviazione FILESTREAM non è supportata dalle colonne delle tabelle ottimizzate per la memoria. Rimuovere la parola chiave FILESTREAM dalla definizione della colonna. |
Funzionalità | SPARSE | Le colonne delle tabelle ottimizzate per la memoria non possono essere definite come SPARSE. Rimuovere la parola chiave SPARSE dalla definizione della colonna. |
Funzionalità | ROWGUIDCOL | L'opzione ROWGUIDCOL non è supportata dalle colonne delle tabelle ottimizzate per la memoria. Rimuovere la parola chiave ROWGUIDCOL dalla definizione della colonna. |
Funzionalità | FOREIGN KEY | Si applica a: database SQL di Azure e SQL Server a partire da SQL Server 2016 (13.x) Per le tabelle ottimizzate per la memoria, i vincoli FOREIGN KEY sono supportati solo per chiavi esterne che fanno riferimento a chiavi primarie di altre tabelle ottimizzate per la memoria. Rimuovere il vincolo dalla definizione della tabella se la chiave esterna fa riferimento a un vincolo univoco. In SQL Server 2014 (12.x) i vincoli FOREIGN KEY non sono supportati con le tabelle ottimizzate per la memoria. |
Funzionalità | indice cluster | Specificare un indice non cluster. Nel caso di un indice di chiave primaria assicurarsi di specificare PRIMARY KEY NONCLUSTERED. |
Funzionalità | DDL all'interno delle transazioni | 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. Non avviare una transazione e assicurarsi che l'impostazione della sessione IMPLICIT_TRANSACTIONS sia OFF prima di eseguire l'istruzione CREATE o DROP. |
Funzionalità | Trigger DDL | 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. Rimuovere i trigger di database e di server da CREATE/DROP TABLE e CREATE/DROP PROCEDURE. |
Funzionalità | EVENT 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. Rimuovere le notifiche degli eventi di database e di server in CREATE TABLE o DROP TABLE e CREATE PROCEDURE o DROP PROCEDURE. |
Funzionalità | FileTable | Le tabelle con ottimizzazione per la memoria non possono essere create come tabelle di file. Rimuovere l'argomento AS FileTable dall'istruzione CREATE TABLE . |
Operazione | Aggiornamento di colonne chiave primaria | Le colonne chiave primaria delle tabelle ottimizzate per la memoria e dei tipi di tabella non possono essere aggiornate. Se la chiave primaria deve essere aggiornata, eliminare la vecchia riga e inserire una nuova riga con la chiave primaria aggiornata. |
Operazione | CREATE INDEX | Gli indici delle tabelle ottimizzate per la memoria devono essere specificati inline con l'istruzione CREATE TABLE o ALTER TABLE. |
Operazione | CREATE FULLTEXT INDEX … | Gli indici full-text non sono supportati dalle tabelle ottimizzate per la memoria. |
Operazione | modifica schema | Le tabelle con ottimizzazione per la memoria e le stored procedure compilate in modo nativo non supportano determinate modifiche dello schema: Database SQL di Azure e SQL Server a partire da SQL Server 2017 (14.x): sono supportate le operazioni ALTER TABLE, ALTER PROCEDURE e sp_rename. Altre modifiche dello schema, ad esempio l'aggiunta di proprietà estese, non sono supportate. SQL Server 2016 (13.x): sono supportate le operazioni ALTER TABLE e ALTER PROCEDURE. Altre modifiche dello schema, tra cui sp_rename, non sono supportate. SQL Server 2014 (12.x): le modifiche dello schema non sono supportate. Per modificare la definizione di una tabella ottimizzata per la memoria o di una stored procedure compilata in modo nativo, rilascia prima l'oggetto e quindi ricrealo con la definizione desiderata. |
Operazione | TRUNCATE TABLE | L'operazione TRUNCATE non è supportata dalle tabelle ottimizzate per la memoria. Per rimuovere tutte le righe da una tabella, eliminare tutte le righe usando DELETE FROM tabella oppure eliminare e ricreare la tabella. |
Operazione | ALTER AUTHORIZATION | La modifica del proprietario di una tabella ottimizzata per la memoria o di una stored procedure compilata in modo nativo non è supportata. Eliminare e ricreare la tabella o la stored procedure per modificare la proprietà. |
Operazione | ALTER SCHEMA | Il trasferimento di una tabella o di una stored procedure compilata in modo nativo esistente in un altro schema non è supportato. Rilasciare e ricreare l'oggetto per trasferirlo da uno schema a un altro. |
Operazione | DBCC CHECKTABLE | L'operazione DBCC CHECKTABLE non è supportata con le tabelle ottimizzate per la memoria. Per verificare l'integrità dei file di checkpoint su disco, eseguire un backup del filegroup MEMORY_OPTIMIZED_DATA. |
Funzionalità | ANSI_PADDING OFF | L'opzione di sessione ANSI_PADDING deve essere impostata su ON durante la creazione delle tabelle ottimizzate per la memoria e delle stored procedure compilate in modo nativo. Eseguire SET ANSI_PADDING ON prima di eseguire l'istruzione CREATE. |
Opzione | DATA_COMPRESSION | La compressione dati non è supportata dalle tabelle ottimizzate per la memoria. Rimuovere l'opzione dalla definizione della tabella. |
Funzionalità | DTC | Non è possibile accedere alle tabelle con ottimizzazione per la memoria e alle stored procedure compilate in modo nativo da transazioni distribuite. Utilizzare le transazioni SQL. |
Operazione | Tabelle con ottimizzazione per la memoria come destinazione di MERGE | Le tabelle con ottimizzazione per la memoria non possono essere la destinazione di un'operazione MERGE . Usare le istruzioni INSERT, UPDATEe DELETE. |
Indici in tabelle con ottimizzazione per la memoria
Nella tabella seguente vengono elencate le parole chiave e le funzionalità di Transact-SQL che possono essere inclusi nel testo del messaggio di un errore che interessa l'indice di una tabella ottimizzata per la memoria e l'azione correttiva per risolvere l'errore.
Type | Nome | Risoluzione |
---|---|---|
Funzionalità | Indice filtrato | Gli indici filtrati non sono supportati con le tabelle ottimizzate per la memoria. Omettere la clausola WHERE dalla specifica dell'indice. |
Funzionalità | included_columns | Non è necessario specificare le colonne incluse per le tabelle ottimizzate per la memoria. Tutte le colonne della tabella ottimizzata per la memoria vengono incluse in modo implicito in ogni indice ottimizzato per la memoria. |
Operazione | DROP INDEX | L'eliminazione degli indici nelle tabelle ottimizzate per la memoria non è supportata. È possibile eliminare gli indici mediante ALTER TABLE. Per altre informazioni, vedere Modifica di tabelle con ottimizzazione per la memoria. |
Opzione di indice | Opzione di indice | È supportata solo un'opzione di indice: BUCKET_COUNT per gli indici HASH. |
Indici hash non cluster
Nella tabella seguente vengono elencate le parole chiave e le funzionalità di Transact-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.
Type | Nome | Risoluzione |
---|---|---|
Opzione | ASC/DESC | Gli indici hash non cluster non sono ordinati. Rimuovere le parole chiave ASC e DESC dalla specifica della chiave di indice. |
Funzioni definite dall'utente e stored procedure compilate in modo nativo
La tabella seguente elenca le parole chiave e le funzionalità di Transact-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.
Type | Funzionalità | Risoluzione |
---|---|---|
Funzionalità | Variabili di tabella inline | I tipi di tabella non possono essere dichiarati inline con le dichiarazioni di variabili. I tipi di tabella devono essere dichiarati in modo esplicito utilizzando un'istruzione CREATE TYPE . |
Funzionalità | Cursori | I cursori non sono supportati nelle stored procedure compilate in modo nativo. Quando si esegue la procedura dal client, usare RPC anziché l'API cursore. Con ODBC, evitare l'istruzione Transact-SQL EXECUTE e specificare direttamente il nome della procedura. Quando si esegue la procedura da un batch Transact-SQL o da un'altra stored procedure, evita di usare un cursore con la stored procedure compilata in modo nativo. Quando si crea una stored procedure compilata in modo nativo, usare al posto del cursore la logica basata su set o un ciclo WHILE . |
Funzionalità | Valori predefiniti del parametro non costanti | Quando si utilizzano i valori predefiniti con i parametri nelle stored procedure compilate in modo nativo, i valori devono essere costanti. Rimuovere tutti i caratteri jolly dalle dichiarazioni di parametro. |
Funzionalità | EXTERNAL | Le stored procedure CLR non possono essere compilate in modo nativo. Rimuovere la clausola AS EXTERNAL o l'opzione NATIVE_COMPILATION dall'istruzione CREATE PROCEDURE. |
Funzionalità | Stored procedure numerate | Le stored procedure compilate in modo nativo non possono essere numerate. Rimuovere ;number dall'istruzione CREATE PROCEDURE . |
Funzionalità | istruzioni INSERT … VALUES su più righe | Non è possibile inserire più righe utilizzando la stessa istruzione INSERT in una stored procedure compilata in modo nativo. Creare istruzioni INSERT per ogni riga. |
Funzionalità | Espressioni di tabella comuni | Le espressioni di tabella comuni (CTE) non sono supportate nelle stored procedure compilate in modo nativo. Riformulare la query. |
Funzionalità | COMPUTE | La clausola COMPUTE non è supportata. Rimuoverla dalla query. |
Funzionalità | SELECT INTO | La clausola INTO non è supportata con l'istruzione SELECT . Riscrivere la query come INSERT INTO Table SELECT. |
Funzionalità | elenco delle colonne di inserimento incompleto | In genere, nelle istruzioni INSERT i valori devono essere specificati per tutte le colonne della tabella. Tuttavia, nelle tabelle con ottimizzazione per la memoria Microsoft supporta i vincoli DEFAULT e le colonne IDENTITY(1,1). Tali colonne possono essere, e nel caso delle colonne IDENTITY devono essere, omesse dall'elenco di colonne INSERT. |
Funzionalità | Funzione | Alcune funzioni predefinite non sono supportate nelle stored procedure compilate in modo nativo. Rimuovere la funzione rifiutata dalla stored procedure. Per altre informazioni sulle funzioni predefinite supportate, vedere Funzionalità supportate per i moduli T-SQL compilati in modo nativoo Stored procedure compilate in modo nativo. |
Funzionalità | CASE | Si applica a: SQL Server 2014 (12.x) e SQL Server a partire da SQL Server 2016 (13.x) Le espressioni CASE non sono supportate nelle query all'interno di stored procedure compilate in modo nativo. Creare query per ogni istruzione CASE. Per altre informazioni, vedere Implementazione di un'istruzione CASE. Database SQL di Azure e SQL Server a partire da SQL Server 2017 (14.x) supportano le espressioni CASE. |
Funzionalità | INSERT EXECUTE | Rimuovere il riferimento. |
Funzionalità | EXECUTE | Funzionalità supportata solo per eseguire le stored procedure compilate in modo nativo e le funzioni definite dall'utente. |
Funzionalità | aggregazioni definite dall'utente | Le funzioni di aggregazione definite dall'utente non possono essere utilizzate nelle stored procedure compilate in modo nativo. Rimuovere il riferimento alla funzione dalla procedura. |
Funzionalità | metadati in modalità browse | Nelle stored procedure compilate in modo nativo non è ancora previsto il supporto per i metadati in modalità browse. Accertarsi che l'opzione di sessione NO_BROWSETABLE sia impostata su OFF. |
Funzionalità | DELETE con clausola FROM | La clausola FROM non è supportata dalle istruzioni DELETE con un'origine della tabella nelle stored procedure compilate in modo nativo. DELETE con la clausola FROM è supportata quando viene utilizzata per indicare la tabella da cui eseguire l'eliminazione. |
Funzionalità | UPDATE con clausola FROM | La clausola FROM non è supportata dalle istruzioni UPDATE nelle stored procedure compilate in modo nativo. |
Funzionalità | stored procedure temporanee | Le stored procedure temporanee non possono essere compilate in modo nativo. Crea una stored procedure compilata in modo nativo permanente o una stored procedure Transact-SQL temporaneamente interpretata. |
Livello di isolamento | READ UNCOMMITTED | Il livello di isolamento READ UNCOMMITTED non è supportato dalle stored procedure compilate in modo nativo. Utilizzare un livello di isolamento supportato, ad esempio SNAPSHOT. |
Livello di isolamento | READ COMMITTED | Il livello di isolamento READ COMMITTED non è supportato dalle stored procedure compilate in modo nativo. Utilizzare un livello di isolamento supportato, ad esempio SNAPSHOT. |
Funzionalità | Tabelle temporanee | Le tabelle del tempdb non possono essere utilizzate nelle stored procedure compilate in modo nativo. In alternativa, usare una variabile di tabella o una tabella ottimizzata per la memoria con DURABILITY=SCHEMA_ONLY. |
Funzionalità | DTC | Non è possibile accedere alle tabelle con ottimizzazione per la memoria e alle stored procedure compilate in modo nativo da transazioni distribuite. Utilizzare le transazioni SQL. |
Funzionalità | EXECUTE WITH RECOMPILE | L'opzione WITH RECOMPILE non è supportata dalle stored procedure compilate in modo nativo. |
Funzionalità | Esecuzione dalla connessione amministrativa dedicata. | Le stored procedure compilate in modo nativo non possono essere eseguite dalla connessione amministrativa dedicata. Utilizzare una connessione normale. |
Operazione | savepoint | Le stored procedure compilate in modo nativo non possono essere richiamate dalle transazioni che hanno un punto di salvataggio attivo. Rimuovere il punto di salvataggio dalla transazione. |
Operazione | ALTER AUTHORIZATION | La modifica del proprietario di una tabella ottimizzata per la memoria o di una stored procedure compilata in modo nativo non è supportata. Eliminare e ricreare la tabella o la stored procedure per modificare la proprietà. |
Operatore | OPENROWSET | Questo operatore non è supportato. Rimuovere OPENROWSET dalla stored procedure compilata in modo nativo. |
Operatore | OPENQUERY | Questo operatore non è supportato. Rimuovere OPENQUERY dalla stored procedure compilata in modo nativo. |
Operatore | OPENDATASOURCE | Questo operatore non è supportato. Rimuovere OPENDATASOURCE dalla stored procedure compilata in modo nativo. |
Operatore | OPENXML | Questo operatore non è supportato. Rimuovere OPENXML dalla stored procedure compilata in modo nativo. |
Operatore | CONTAINSTABLE | Questo operatore non è supportato. Rimuovere CONTAINSTABLE dalla stored procedure compilata in modo nativo. |
Operatore | FREETEXTTABLE | Questo operatore non è supportato. Rimuovere FREETEXTTABLE dalla stored procedure compilata in modo nativo. |
Funzionalità | funzioni con valori di tabella | Non è possibile fare riferimento alle funzioni con valori di tabella nelle stored procedure compilate in modo nativo. Una soluzione alternativa possibile per questa restrizione consiste nell'aggiungere la logica nelle funzioni con valori di tabella al corpo della procedura. |
Operatore | CHANGETABLE | Questo operatore non è supportato. Rimuovere CHANGETABLE dalla stored procedure compilata in modo nativo. |
Operatore | GOTO | Questo operatore non è supportato. Utilizzare altri costrutti procedurali come WHILE. |
Operatore | OFFSET | Questo operatore non è supportato. Rimuovere OFFSET dalla stored procedure compilata in modo nativo. |
Operatore | INTERSECT | Questo operatore non è supportato. Rimuovere INTERSECT dalla stored procedure compilata in modo nativo. In alcuni casi è possibile usare INNER JOIN per ottenere lo stesso risultato. |
Operatore | EXCEPT | Questo operatore non è supportato. Rimuovere EXCEPT dalla stored procedure compilata in modo nativo. |
Operatore | APPLY | Si applica a: SQL Server 2014 (12.x) e SQL Server a partire da SQL Server 2016 (13.x) Questo operatore non è supportato. Rimuovere APPLY dalla stored procedure compilata in modo nativo. Database SQL di Azure e SQL Server a partire da SQL Server 2017 (14.x) supportano l'operatore APPLY nei moduli compilati in modo nativo. |
Operatore | PIVOT | Questo operatore non è supportato. Rimuovere PIVOT dalla stored procedure compilata in modo nativo. |
Operatore | UNPIVOT | Questo operatore non è supportato. Rimuovere UNPIVOT dalla stored procedure compilata in modo nativo. |
Operatore | CONTAINS | Questo operatore non è supportato. Rimuovere CONTAINS dalla stored procedure compilata in modo nativo. |
Operatore | FREETEXT | Questo operatore non è supportato. Rimuovere FREETEXT dalla stored procedure compilata in modo nativo. |
Operatore | TSEQUAL | Questo operatore non è supportato. Rimuovere TSEQUAL dalla stored procedure compilata in modo nativo. |
Operatore | LIKE | Questo operatore non è supportato. Rimuovere LIKE dalla stored procedure compilata in modo nativo. |
Operatore | NEXT VALUE FOR | Non è possibile fare riferimento alle sequenze all'interno di stored procedure compilate in modo nativo. Ottieni il valore utilizzando Transact-SQL interpretato, quindi passalo alla stored procedure compilata in modo nativo. Per altre informazioni, vedere Implementazione di IDENTITY in una tabella con ottimizzazione per la memoria. |
Opzione set | opzione | Le opzioni SET non possono essere modificate all'interno di stored procedure compilate in modo nativo. Alcune opzioni possono essere impostate tramite l'istruzione BEGIN ATOMIC. Per altre informazioni, vedi la sezione relativa ai blocchi atomici in Stored procedure compilate in modo nativo. |
Operand | TABLESAMPLE | Questo operatore non è supportato. Rimuovere TABLESAMPLE dalla stored procedure compilata in modo nativo. |
Opzione | RECOMPILE | Le stored procedure compilate in modo nativo vengono compilate al momento della creazione. Rimuovere RECOMPILE dalla definizione della procedura. È possibile eseguire sp_recompile in una stored procedure compilata in modo nativo per ricompilarla alla successiva esecuzione. |
Opzione | ENCRYPTION | Questa opzione non è supportata. Rimuovere ENCRYPTION dalla definizione della procedura. |
Opzione | FOR REPLICATION | Le stored procedure compilate in modo nativo non possono essere create per la replica. Rimuovere FOR REPLICATION dalla definizione della procedura. |
Opzione | FOR XML | Questa opzione non è supportata. Rimuovere FOR XML dalla stored procedure compilata in modo nativo. |
Opzione | FOR BROWSE | Questa opzione non è supportata. Rimuovere FOR BROWSE dalla stored procedure compilata in modo nativo. |
Hint per il join | HASH, MERGE | Nelle stored procedure compilate in modo nativo sono supportati solo i join a cicli annidati. I join merge e hash non sono supportati. Rimuovere l'hint per il join. |
Hint per la query | Hint per la query | Questo hint per la query non è all'interno di stored procedure compilate in modo nativo. Per gli hint per la query supportati, vedi Hint per la query (Transact-SQL). |
Opzione | PERCENT | Questa opzione non è supportata con le clausole TOP . Rimuovere PERCENT dalla query nella stored procedure compilata in modo nativo. |
Opzione | WITH TIES | Si applica a: SQL Server 2014 (12.x) SQL Server 2016 (13.x) Questa opzione non è supportata con le clausole TOP . Rimuovere WITH TIES dalla query nella stored procedure compilata in modo nativo. Database SQL di Azure e SQL Server a partire da SQL Server 2017 (14.x) supportano TOP WITH TIES. |
Funzione di aggregazione | Funzione di aggregazione | Non tutte le funzioni di aggregazione sono supportate. Per altre informazioni sulle funzioni di aggregazione supportate nei moduli T-SQL compilati in modo nativo, vedere Funzionalità supportate per i moduli T-SQL compilati in modo nativo. |
Funzione di rango | Funzione di rango | Le funzioni di rango non sono supportate nelle stored procedure compilate in modo nativo. Rimuoverle dalla definizione della procedura. |
Funzione | Funzione | Questa funzione non è supportata. Per altre informazioni sulle funzioni supportate nei moduli T-SQL compilati in modo nativo, vedere Funzionalità supportate per i moduli T-SQL compilati in modo nativo. |
Istruzione | Istruzione | Questa istruzione non è supportata. Per altre informazioni sulle funzioni supportate nei moduli T-SQL compilati in modo nativo, vedere Funzionalità supportate per i moduli T-SQL compilati in modo nativo. |
Funzionalità | MIN e MAX utilizzati con stringhe binarie e di caratteri | 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. |
Funzionalità | GROUP BY ALL | ALL non può essere utilizzato con le clausole GROUP BY nelle stored procedure compilate in modo nativo. Rimuovere ALL dalla clausola GROUP BY. |
Funzionalità | GROUP BY () | il raggruppamento da un elenco vuoto non è supportato. Rimuovere la clausola GROUP BY o includere colonne nell'elenco di raggruppamento. |
Funzionalità | ROLLUP | ROLLUP non può essere utilizzato con le clausole GROUP BY nelle stored procedure compilate in modo nativo. Rimuovere ROLLUP dalla definizione della procedura. |
Funzionalità | CUBE | CUBE non può essere utilizzato con le clausole GROUP BY nelle stored procedure compilate in modo nativo. Rimuovere CUBE dalla definizione della procedura. |
Funzionalità | GROUPING SETS | GROUPING SETS non può essere utilizzato con le clausole GROUP BY nelle stored procedure compilate in modo nativo. Rimuovere GROUPING SETS dalla definizione della procedura. |
Funzionalità | BEGIN TRANSACTION, COMMIT TRANSACTION e ROLLBACK TRANSACTION | Utilizzare i blocchi ATOMIC per controllare le transazioni e la gestione degli errori. Per altre informazioni, vedere Atomic Blocks. |
Funzionalità | Dichiarazioni di variabili di tabelle inline. | Le variabili di tabella devono fare riferimento ai tipi di tabella ottimizzata per la memoria definiti in modo esplicito. È consigliabile creare un tipo di tabella ottimizzata per la memoria e usare tale tipo per la dichiarazione di variabili, anziché specificare il tipo inline. |
Funzionalità | Tabelle basate su disco | Non è possibile accedere alle tabelle basate su dico dalle stored procedure compilate in modo nativo. Rimuovi i riferimenti alle tabelle basate su disco dalle stored procedure compilate in modo nativo. In alternativa, eseguire la migrazione delle tabelle basate su disco alle tabelle con ottimizzazione per la memoria. |
Funzionalità | Visualizzazioni | Non è possibile accedere alle viste dalle stored procedure compilate in modo nativo. Anziché alle viste, fare riferimento alle tabelle di base sottostanti. |
Funzionalità | Funzioni con valori di tabella | Si applica a: database SQL di Azure e SQL Server a partire da SQL Server 2016 (13.x) Non è possibile accedere alle funzioni con valori di tabella con istruzioni multiple dai moduli T-SQL compilati in modo nativo. Le funzioni con valori di tabella inline sono supportate, ma devono essere create con la clausola WITH NATIVE_COMPILATION. Si applica a: SQL Server 2014 (12.x) Non è possibile fare riferimento alle funzioni con valori di tabella da moduli T-SQL compilati in modo nativo. |
Opzione | Rimuovere il riferimento. | |
Funzionalità | DDL | All'interno di moduli T-SQL compilati in modo nativo non sono supportate DLL. |
Opzione | STATISTICS XML | Non supportato. 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. |
Transazioni che accedono alle tabelle con ottimizzazione per la memoria
Nella tabella seguente vengono elencate le parole chiave e le funzionalità di Transact-SQL che possono essere incluse nel testo del messaggio di un errore che interessa le transazioni che accedono alle tabelle ottimizzate per la memoria e l'azione correttiva per risolvere l'errore.
Type | Nome | Risoluzione |
---|---|---|
Funzionalità | savepoint | La creazione di punti di salvataggio espliciti nelle transazioni che accedono alle tabelle ottimizzate per la memoria non è supportata. |
Funzionalità | transazione associata | Le sessioni associate non possono partecipare alle transazioni che accedono alle tabelle ottimizzate per la memoria. Non associare la sessione prima di eseguire la procedura. |
Funzionalità | DTC | Le transazioni che accedono alle tabelle ottimizzate per la memoria non possono essere transazioni distribuite. |