Costrutti Transact-SQL non supportati da OLTP in memoria
Le tabelle ottimizzate per la memoria e le stored procedure compilate in modo nativo non supportano l'area di attacco Transact-SQL completa supportata dalle tabelle basate su disco e dalle stored procedure Transact-SQL interpretate. Quando si tenta di usare una delle funzionalità non supportate, il server restituisce un errore.
Il testo del messaggio di errore indica il tipo di istruzione Transact-SQL (funzionalità, operazione, opzione, ad esempio) 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 sono elencate le funzionalità e le parole chiave Transact-SQL che possono essere visualizzate nel testo del messaggio di errore, nonché 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:
Database che utilizzano OLTP in memoria
Nella tabella seguente sono elencate le funzionalità e le parole chiave Transact-SQL che possono essere visualizzate nel testo del messaggio di un errore che interessa un database OLTP In-Memory.
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 con ottimizzazione per la memoria
Nella tabella seguente sono elencate le funzionalità e le parole chiave Transact-SQL che possono essere visualizzate nel testo del messaggio di un errore che interessa una tabella ottimizzata per la memoria, nonché l'azione correttiva per risolvere l'errore.
Type | Nome | Risoluzione |
---|---|---|
Funzionalità | ON | 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 . |
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 | Le colonne calcolate non sono supportate dalle tabelle ottimizzate per la memoria. Rimuovere le colonne calcolate dall'istruzione CREATE TABLE . |
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 | I vincoli FOREIGN KEY non sono supportati dalle tabelle ottimizzate per la memoria. Rimuovere il vincolo dalla definizione della tabella. Per informazioni su come ridurre la mancanza di supporto per i vincoli, vedere Migrazione dei vincoli check ed foreign key. |
Funzionalità | CHECK | I vincoli CHECK non sono supportati dalle tabelle ottimizzate per la memoria. Rimuovere il vincolo dalla definizione della tabella. Per informazioni su come ridurre la mancanza di supporto per i vincoli, vedere Migrazione dei vincoli check ed foreign key. |
Funzionalità | UNIQUE | I vincoli UNIQUE non sono supportati dalle tabelle ottimizzate per la memoria. Rimuovere il vincolo dalla definizione della tabella. Per informazioni su come ridurre la mancanza di supporto per i vincoli, vedere Migrazione dei vincoli check ed foreign key. |
Funzionalità | COLUMNSTORE | Gli indici COLUMNSTORE non sono supportati con le tabelle ottimizzate per la memoria. Specificare invece un indice NON CLUSTER o HASH NON CLUSTER. |
Funzionalità | indice cluster | Specificare un indice non cluster. Nel caso di un indice di chiave primaria assicurarsi di specificare PRIMARY KEY NONCLUSTERED [HASH] . |
Funzionalità | tabella codici non 1252 | Le colonne delle tabelle ottimizzate per la memoria con tipi di dati char e varchar devono usare la tabella codici 1252. Utilizzare n(var)char anziché (var)char oppure regole di confronto con tabella codici 1252, ad esempio Latin1_General_BIN2. Per altre informazioni, vedere Collations and Code Pages. |
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 . Per aggiungere un indice in una tabella ottimizzata per la memoria, eliminare e ricreare la tabella includendo la nuova specifica dell'indice. |
Operazione | MODIFICA TABELLA | La modifica delle tabelle ottimizzate per la memoria non è supportata. Eliminare e ricreare la tabella utilizzando la definizione della tabella aggiornata. |
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 le modifiche dello schema, ad esempio sp_rename .Se si tenta di apportare modifiche allo schema, ad esempio di rinominare una tabella, verrà generato l'errore 12320. Le operazioni che richiedono una modifica alla versione dello schema, ad esempio la ridenominazione, non sono supportate con le tabelle ottimizzate per la memoria. Per modificare lo schema, eliminare e ricreare la tabella o la procedura utilizzando una definizione aggiornata. |
Operazione | CREATE TRIGGER | I trigger non sono supportati nelle tabelle ottimizzate per la memoria. |
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 la tabella o 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 | La modifica dello schema di una tabella ottimizzata per la memoria o di una stored procedure compilata in modo nativo esistente non è supportata. Eliminare e ricreare la tabella o la stored procedure per modificare lo schema. |
Operazione | DBCC CHECKTABLE | DBCC CHECKTABLE non è supportato con le tabelle ottimizzate per la memoria. |
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. |
Funzionalità | MARS (Multiple Active Result Sets) | MARS (Multiple Active Result Set) non è supportato con le tabelle ottimizzate per la memoria. L'errore può inoltre indicare l'utilizzo di un server collegato. Il server collegato può usare MARS. I server collegati non sono supportati con le tabelle ottimizzate per la memoria. Connettersi direttamente al server e al database che ospita le tabelle ottimizzate per la memoria. |
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 . Utilizzare l'istruzione INSERT , UPDATE o DELETE . |
Indici in tabelle con ottimizzazione per la memoria
Nella tabella seguente sono elencate le funzionalità e le parole chiave Transact-SQL che possono essere visualizzate nel testo del messaggio di un errore che interessa un indice in una tabella ottimizzata per la memoria, nonché 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à | UNIQUE | Gli indici univoci non sono supportati dalle tabelle ottimizzate per la memoria. Rimuovere l'argomento UNIQUE dalla specifica dell'indice. |
Funzionalità | Colonne che ammettono i valori Null | Tutte le colonne della chiave di un indice in una tabella ottimizzata per la memoria devono essere specificate come NOT NULL . Includere il vincolo NOT NULL per tutte le colonne delle chiavi di indice. |
Funzionalità | regole di confronto non BIN2 | Tutte le colonne di caratteri della chiave di un indice ottimizzato per la memoria devono essere dichiarate utilizzando le regole di confronto BIN2. Utilizzare la clausola COLLATE per impostare le regole di confronto nella definizione di colonna. Per altre informazioni, vedere Collations and Code Pages. |
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 | ALTER INDEX | La modifica degli indici nelle tabelle ottimizzate per la memoria non è supportata. In alternativa, eliminare la tabella e ricrearla utilizzando la specifica dell'indice aggiornata. |
Operazione | DROP INDEX | L'eliminazione degli indici nelle tabelle ottimizzate per la memoria non è supportata. In alternativa, eliminare la tabella e ricrearla con gli indici desiderati. |
Opzione dell'indice | Opzione di indice | L'opzione di indice indicata non è supportata con gli indici delle tabelle ottimizzate per la memoria. Rimuovere l'opzione dalla specifica dell'indice. |
Indici hash non cluster
Nella tabella seguente sono elencate le funzionalità e le parole chiave Transact-SQL che possono essere visualizzate nel testo del messaggio di un errore che interessa un indice hash non cluster, nonché 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. |
stored procedure compilate in modo nativo
Nella tabella seguente sono elencate le funzionalità e le parole chiave Transact-SQL che possono essere visualizzate nel testo del messaggio di un errore che include stored procedure compilate in modo nativo, nonché 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 del cursore. Con ODBC, evitare l'istruzione EXECUTE Transact-SQL , specificare invece direttamente il nome della routine.-Quando si esegue la procedura da un batch Transact-SQL o da un'altra stored procedure, evitare di usare un cursore con la stored procedure compilata in modo nativo. -Quando si crea una stored procedure compilata in modo nativo, anziché usare un cursore, usare la logica basata su set o un WHILE ciclo. |
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 il ; numero dall'istruzione CREATE PROCEDURE . |
Funzionalità | INSERT di più righe... Istruzioni VALUES | 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à | Sottoquery | Le sottoquery (query annidata in un'altra query) non sono supportate. 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 TabellaSELECT . |
Funzionalità | OUTPUT | La clausola OUTPUT non è supportata. Rimuoverla dalla query. |
Funzionalità | elenco delle colonne di inserimento incompleto | Nelle istruzioni INSERT , i valori devono essere specificati per tutte le colonne della tabella. |
Funzione | Funzione | La funzione predefinita non è supportata nelle stored procedure compilate in modo nativo. Rimuovere la funzione dalla stored procedure. Per altre informazioni sulle funzioni predefinite supportate, vedere Stored procedure compilate in modo nativo. |
Funzionalità | CASE | L'istruzione CASE non è supportata 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. |
Funzionalità | funzioni definite dall'utente | Le funzioni definite dall'utente non possono essere utilizzate nelle stored procedure compilate in modo nativo. Rimuovere il riferimento alla funzione dalla definizione delle procedure. |
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. Creare una stored procedure compilata in modo nativo permanente o una stored procedure Transact-SQL interpretata temporanea. |
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 UNCOMMITTED 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à | MARS | MARS (Multiple Active Result Sets) non è supportato con le stored procedure compilate in modo nativo. L'errore può inoltre indicare l'utilizzo di un server collegato. Il server collegato può usare MARS. I server collegati non sono supportati con le stored procedure compilate in modo nativo. Connettersi direttamente al server e al database che ospita le stored procedure compilate in modo nativo. |
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à | regole di confronto non BIN2 | Il confronto, l'ordinamento e altre operazioni delle stringhe di caratteri nelle stored procedure compilate in modo nativo richiedono l'utilizzo di regole di confronto BIN2. Utilizzare la clausola COLLATE oppure le colonne e le variabili con le regole di confronto appropriate. Per altre informazioni, vedere Collations and Code Pages. |
Funzionalità | Troncamento delle stringhe di caratteri con regole di confronto SC. | Le stringhe di caratteri con le regole di confronto _SC utilizzano la codifica UTF-16. La conversione di un valore n(var)char in un valore n(var)char con lunghezza ridotta comporta il troncamento. Ciò non è supportato per i valori UTF-16 delle stored procedure compilate in modo nativo. Evitare il troncamento delle stringhe UTF-16. |
Funzionalità | EXECUTE WITH RECOMPILE | L'opzione WITH RECOMPILE non è supportata dalle stored procedure compilate in modo nativo. |
Funzionalità | LEN e SUBSTRING con un argomento nelle regole di confronto SC | Le stringhe di caratteri con le regole di confronto _SC utilizzano la codifica UTF-16. Le funzioni predefinite LEN e SUBSTRING, quando utilizzate all'interno di stored procedure compilate in modo native, non supportano la codifica UTF-16. Utilizzare regole di confronto diverse o evitare di usare queste funzioni. |
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 | ALTER PROCEDURE | Le stored procedure compilate in modo nativo non possono essere modificate. Per modificare la definizione della procedura, eliminare e ricreare la stored procedure. |
Operazione | punto di salvataggio | 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 | EXECUTE, INSERT EXEC | L'annidamento di stored procedure compilate in modo nativo non è supportato. Le operazioni necessarie possono essere specificate inline durante la definizione della stored procedure. |
Operatore | OFFSET | Questo operatore non è supportato. Rimuovere OFFSET dalla stored procedure compilata in modo nativo. |
Operatore | UNION | Questo operatore non è supportato. Rimuovere UNION dalla stored procedure compilata in modo nativo. La combinazione di più set di risultati in un unico set di risultati può essere effettuata utilizzando una variabile di tabella. |
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 | OUTER JOIN | Questo operatore non è supportato. Rimuovere OUTER JOIN dalla stored procedure compilata in modo nativo. Per altre informazioni, vedere Implementazione di un outer join. |
Operatore | APPLY | Questo operatore non è supportato. Rimuovere APPLY dalla stored procedure compilata 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 | OR, IN | La disgiunzione (OR, IN) non è supportata nella clausola WHERE delle query nelle stored procedure compilate in modo nativo. Creare query per ciascun caso. |
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 | NOT | Questo operatore non è supportato. Rimuovere NOT dalla stored procedure compilata in modo nativo. In alcuni casi, NOT può essere sostituito dalla disuguaglianza. Ad esempio, NOT a=b può essere sostituito da a!=b . |
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. Ottenere il valore usando Transact-SQL interpretato e quindi passarlo nella 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, vedere la sezione relativa ai blocchi atonici in Natively Compiled Stored Procedures. |
Operando | 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. Per ricompilare una stored procedure compilata in modo nativo è necessario eliminarla e ricrearla. Rimuovere RECOMPILE dalla definizione della procedura. |
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 di query supportati, vedere Hint per la query (Transact-SQL).For supported query hints see Query Hints (Transact-SQL). |
Opzione | DISTINCT | Questa opzione non è supportata. Rimuovere DISTINCT dalla query nella stored procedure compilata in modo nativo. |
Opzione | PERCENT | Questa opzione non è supportata con le clausole TOP . Rimuovere PERCENT dalla query nella stored procedure compilata in modo nativo. |
Opzione | WITH TIES | Questa opzione non è supportata con le clausole TOP . Rimuovere WITH TIES dalla query nella stored procedure compilata in modo nativo. |
Funzione di aggregazione | Funzione di aggregazione | Questa clausola non è supportata. Per altre informazioni sulle funzioni di aggregazione delle stored procedure compilate in modo nativo, vedere Natively Compiled Stored Procedures. |
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. Rimuoverla dalla stored procedure compilata in modo nativo. |
. | Istruzione | Questa istruzione non è supportata. Rimuoverla dalla stored procedure compilata 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 senza funzione di aggregazione | Nelle stored procedure compilate in modo nativo, se una query include una clausola GROUP BY deve usare anche una funzione di aggregazione nella clausola SELECT o HAVING. Aggiungere una funzione di aggregazione alla query. |
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à | sp_recompile | La ricompilazione di stored procedure compilate in modo nativo non è supportata. Eliminare e ricreare la stored procedure. |
Funzionalità | EXECUTE AS CALLER | La clausola EXECUTE AS è obbligatoria. Ma EXECUTE AS CALLER non è supportato. Usare EXECUTE AS OWNER , EXECUTE AS utente o EXECUTE AS SELF . |
Funzionalità | Tabelle basate su disco | Non è possibile accedere alle tabelle basate su dico dalle stored procedure compilate in modo nativo. Rimuovere 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à | Viste | 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 | Non è possibile accedere alle funzioni con valori di tabella dalle stored procedure compilate in modo nativo. Rimuovere i riferimenti alle funzioni con valori di tabella dalle stored procedure compilate in modo nativo. |
Transazioni che accedono alle tabelle con ottimizzazione per la memoria
Nella tabella seguente sono elencate le funzionalità e le parole chiave Transact-SQL che possono essere visualizzate nel testo del messaggio di un errore che coinvolgono transazioni che accedono a tabelle ottimizzate per la memoria, nonché l'azione correttiva per risolvere l'errore.
Type | Nome | Risoluzione |
---|---|---|
Funzionalità | punto di salvataggio | 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. |