Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

Sintomi

Si supponga di usare Microsoft SQL Server 2016 o 2017. Quando si elaborano transazioni dati ottimizzate per la memoria utilizzando variabili di tabella ottimizzate per la memoria con l'istruzione where exists , si potrebbe ottenere un risultato errato.

Ad esempio:

Passaggio 1: Creare una tabella e un database ottimizzati per la memoria.

Creare una demo di DATABASE

ALTER DATABASE demo ADD FILEGROUP demo_mod CONTAINS MEMORY_OPTIMIZED_DATA 

ALTER DATABASE demo ADD FILE (name='demo_mod1', filename='C:\DATA\demo_mod1') TO FILEGROUP demo_mod 

Usare demo

Andare

CREATE TYPE dbo. IN_MEMORY_TABLE_TYPE AS TABLE

( source_col INT NULL,

target_col INT non NULL

INDICE ix_InMemoryTable NON CLUSTER (target_col)

) WITH (MEMORY_OPTIMIZED = ON)

ANDARE

Passaggio 2: Inserire dati e aggiornare i dati.

DECLARE @t dbo. IN_MEMORY_TABLE_TYPE

INSERISCI @t ( source_col, target_col ) VALORI (10, 0),(0, 0)

seleziona * da @t

UPDATE r1 SET target_col = -1 FROM @t r1

WHERE EXISTS ( SELECT * FROM @t r2 WHERE r2.source_col > 0 )

SELECT * FROM @t

ANDARE

Passaggio 3: Controllare i risultati.

Risultati effettivi: non tutte le righe della variabile di tabella @t vengono aggiornate.

source_col | target_col

----------------------

10 | -1

0 | 0

Risultati previsti: tutte le righe devono essere aggiornate in modo che abbiano target_col = -1.

source_col | target_col

----------------------

10 | -1

0 | -1.

Risoluzione

Questo problema è stato risolto negli aggiornamenti cumulativi seguenti per SQL Server:

      Aggiornamento cumulativo 1 per SQL Server 2017 

      Aggiornamento cumulativo 5 per SQL Server 2016 SP1

Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli aggiornamenti rapidi e tutte le correzioni per la sicurezza inclusi nell'aggiornamento cumulativo precedente. Scopri gli aggiornamenti cumulativi più recenti per SQL Server:

Ultimo aggiornamento cumulativo per SQL Server 2017

Aggiornamenti cumulativi più recenti per SQL Server 2016

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Riferimenti

Informazioni sulla terminologiautilizzata da Microsoft per descrivere gli aggiornamenti software.

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×