KB4055758 - PERBAIKI: Perilaku yang tidak konsisten untuk mengembalikan kekosongan di akhir data CHAR dan BINARY di SQL Server

Berlaku Untuk
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

Gejala

Asumsikan Anda memiliki tabel Microsoft SQL Server yang memiliki satu atau beberapa indeks yang dibangun di dalamnya. Ketika Anda melakukan kueri terhadap tabel, SQL Server mungkin melakukan pengisian data yang tidak konsisten untuk kolom CHAR dan BINER. Perilaku yang tidak konsisten untuk mengembalikan kekosongan di akhir kolom data CHAR dan BINARY tergantung pada kondisi berikut:

  • Pengaturan ANSI_PADDING saat kolom dibuat dalam tabel SQL Server.
  • Keputusan untuk melakukan pemindaian tabel atau pencarian indeks pada kolom.

Penyebab

Dalam skenario tertentu, SQL Server dapat melakukan pengoptimalan yang memungkinkannya melewati banyak operasi untuk pengiriman data yang lebih cepat. Masalah ini terjadi karena SQL Server tidak mengenali bahwa pengoptimalan tidak dapat diterapkan untuk skenario di atas.

Informasi Selengkapnya

Perilaku SQL Server ini tidak sesuai dengan perilaku yang didokumentasikan dalam artikel berikut: Menggunakan data Char dan Varchar.

Catatan

Jika ANSI_PADDING AKTIF saat kolom NULL char dibuat, maka kolom tersebut berlaku sama seperti kolom char NOT NULL: nilai ditambahkan ke ukuran kolom. Jika ANSI_PADDING NONAKTIF saat kolom char NULL dibuat, kolom tersebut akan berperilaku seperti kolom varchar dengan ANSI_PADDING diatur OFF: blank belakang terpotong.

Resolusi

Masalah ini telah diperbaiki dalam pembaruan kumulatif berikut untuk SQL Server:

Pembaruan Kumulatif 2 untuk SQL Server 2017

Pembaruan Kumulatif 9 untuk SQL Server 2016

Pembaruan Kumulatif 6 untuk SQL Server 2016 SP1

Pembaruan Kumulatif 8 untuk SQL Server 2014 SP2

Pembaruan Kumulatif 7 untuk SQL Server 2014 SP1

Tentang pembaruan kumulatif untuk SQL Server:

Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:

Pembaruan kumulatif terbaru untuk SQL Server 2017

Pembaruan kumulatif terbaru untuk SQL Server 2016

Pembaruan kumulatif terbaru untuk SQL Server 2014

Status

Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk"

Referensi

Pelajari tentang terminologi yang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.