KB4055758 – RETTELSE: Inkonsekvent funktionsmåde for returnering af efterfølgende tomme celler i slutningen af CHAR- og BINÆR-data i SQL Server

Gælder for
SQL 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

Symptomer

Antag, at du har en Microsoft SQL Server-tabel, hvor der er bygget et eller flere indekser. Når du forespørger mod tabellen, kan SQL Server muligvis udføre inkonsistent datafyld for CHAR- og BINÆR-kolonner. Den inkonsekvente funktionalitet for returnering af efterfølgende tomme celler i slutningen af datakolonnerne CHAR og BINARY afhænger af følgende betingelser:

  • Indstillingerne for ANSI_PADDING, når der oprettes kolonner i tabellen SQL Server.
  • Beslutningen om at udføre enten tabelscanning eller indekssøgning på kolonnerne.

Årsag

I visse scenarier kan SQL Server udføre en optimering, der gør det muligt at tilsidesætte mange handlinger og opnå hurtigere datalevering. Problemet opstår, fordi SQL Server ikke genkender, at optimeringen ikke kan anvendes til ovenstående scenarie.

Flere oplysninger

Denne funktionsmåde i SQL Server er ikke i overensstemmelse med funktionsmåden, der er dokumenteret i følgende artikel: Brug af Char- og Varchar-data.

Bemærk

Hvis ANSI_PADDING er slået til, når der oprettes en char NULL-kolonne, fungerer den på samme måde som en char NOT NULL-kolonne: værdier højrepolstres til størrelsen af kolonnen. Hvis ANSI_PADDING er slået fra, når der oprettes en char NULL-kolonne, opfører den sig som en varchar-kolonne med ANSI_PADDING sat OFF: efterfølgende tomme felter afkortes.

Løsning

Dette problem er rettet i følgende kumulative opdateringer til SQL Server:

Akkumuleret opdatering 2 til SQL Server 2017

Kumulativ opdatering 9 til SQL Server 2016

Kumulativ opdatering 6 til SQL Server 2016 SP1

Kumulativ opdatering 8 til SQL Server 2014 SP2

Kumulativ opdatering 7 til SQL Server 2014 SP1

Om kumulative opdateringer til SQL Server:

Hver ny kumulativ opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige kumulative opdatering. Se de seneste kumulative opdateringer til SQL Server:

Seneste kumulative opdatering til SQL Server 2017

Seneste kumulative opdatering til SQL Server 2016

Seneste kumulative opdatering til SQL Server 2014

Status

Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for"

Referencer

Få mere at vide om den terminologi, som Microsoft bruger til at beskrive softwareopdateringer.