Applies ToSQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows

Sintomi

Supponiamo di avere una tabella di Microsoft SQL Server che contiene uno o più indici incorporati. Quando si esegue una query sulla tabella, SQL Server può eseguire una spaziatura dei dati incoerente per le colonne CHAR e BINARY. Il comportamento incoerente per la restituzione degli spazi vuoti finali alla fine delle colonne di dati CHAR e BINARY dipende dalle condizioni seguenti:

  • Le impostazioni della ANSI_PADDING quando vengono create colonne nella tabella di SQL Server.

  • Decisione di eseguire la ricerca di tabelle o Index Seek sulle colonne.

Causa

In alcuni scenari, SQL Server può eseguire un'ottimizzazione che consente di aggirare molte operazioni per il recapito dei dati più rapido. Il problema si verifica perché SQL Server non riconosce che non è possibile applicare l'ottimizzazione per lo scenario precedente.

Ulteriori informazioni

Questo comportamento di SQL Server non è conforme al comportamento documentato nell'articolo seguente: utilizzo di dati char e varchar.

Se ANSI_PADDING è attivata quando viene creata una colonna char NULL, si comporta come se fosse una colonna char NOT NULL: i valori vengono riempiti a destra delle dimensioni della colonna. Se ANSI_PADDING è disattivata quando viene creata una colonna char NULL, si comporta come una colonna varchar con ANSI_PADDING impostato su OFF: gli spazi vuoti finali vengono troncati.

Risoluzione

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

       Aggiornamento cumulativo 2 per SQL Server 2017

       Aggiornamento cumulativo 9 per SQL Server 2016

       Aggiornamento cumulativo 6 per SQL Server 2016 SP1

       Aggiornamento cumulativo 8 per SQL Server 2014 SP2

       Aggiornamento cumulativo 7 per SQL Server 2014 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 2017

Ultimo aggiornamento cumulativo per SQL Server 2016

Ultimo aggiornamento cumulativo per SQL Server 2014

Stato

Microsoft ha confermato che si tratta di un problema nei prodotti Microsoft 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.