Sintomi
Supponiamo di avere un'istruzione Update che faccia riferimento a una funzione di partizione inesistente usando la parola chiave $Partition in Microsoft SQL Server 2014, 2016 o 2017. Per esempio
UPDATE TableName set ColumnName=' XYZ ' dove $Partition. NonExistingPartitionFunction (ColumnName) = 1
In questo caso, SQL Server non esegue un aggiornamento o restituisce un messaggio di errore che indica che l'oggetto NonExistingPartitionFunction non esiste. Tuttavia, dal punto di vista dell'utente, sembra che l'istruzione Update venga eseguita correttamente, ma in realtà non è riuscita.
Causa
Quando si esegue un batch, SQL Server può eseguire la risoluzione dei nomi Deferred (DNR). In questo processo, SQL Server non genera immediatamente un errore quando incontra un oggetto inesistente e prevede che l'oggetto venga creato dal modulo o dal batch prima dell'esecuzione dell'istruzione che fa riferimento a tale oggetto. Per le funzioni di partizione, SQL Server non gestisce correttamente il DNR.
Ulteriori informazioni
Per altre informazioni su DNR, vedere risoluzione dei nomi Deferred.
Risoluzione
Questo problema è stato risolto negli aggiornamenti cumulativi seguenti per SQL Server:
Aggiornamento cumulativo 8 per SQL Server 2016 SP1
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:
Ultimo aggiornamento cumulativo 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.