อาการ
สมมติว่าคุณมีตาราง Microsoft SQL Server ที่มีอย่างน้อยหนึ่งดัชนีที่สร้างขึ้น เมื่อคุณทำการสอบถามกับตาราง SQL Server อาจทำการจัดชิดข้อมูลที่ไม่สอดคล้องกันสำหรับคอลัมน์อักขระและไบนารี ลักษณะการทำงานที่ไม่สอดคล้องกันสำหรับการส่งกลับช่องว่างต่อท้ายที่จุดสิ้นสุดของคอลัมน์ข้อมูลตัวอักขระและไบนารีจะขึ้นอยู่กับเงื่อนไขต่อไปนี้:
-
การตั้งค่าของ ANSI_PADDING เมื่อมีการสร้างคอลัมน์ในตาราง SQL Server
-
การตัดสินใจในการดำเนินการการสแกนตารางหรือดัชนีค้นหาในคอลัมน์
สาเหตุ
ในบางสถานการณ์ SQL Server อาจทำการปรับให้เหมาะสมที่ช่วยให้สามารถเลี่ยงผ่านการดำเนินการจำนวนมากสำหรับการส่งข้อมูลได้เร็วขึ้น ปัญหานี้เกิดขึ้นเนื่องจาก SQL Server ไม่รู้จักว่าไม่สามารถใช้การปรับให้เหมาะสมสำหรับสถานการณ์สมมติข้างต้นได้
ข้อมูลเพิ่มเติม
ลักษณะการทำงานนี้ของ SQL Server ไม่สอดคล้องกับลักษณะการทำงานที่ได้รับการบันทึกไว้ในบทความต่อไปนี้: การใช้ข้อมูล Char และ Varchar
ถ้า ANSI_PADDING อยู่เมื่อมีการสร้างคอลัมน์ NULL อักขระจะทำงานเหมือนกับอักขระที่ไม่ใช่ NULL คอลัมน์: ค่าจะถูกปรับให้เหมาะสมกับขนาดของคอลัมน์ ถ้า ANSI_PADDING ปิดใช้งานเมื่อมีการสร้างคอลัมน์ NULL อักขระจะมีการทำงานเหมือนกับคอลัมน์แบบ varchar ที่มี ANSI_PADDING ตั้งค่า: ต่อท้ายช่องว่างจะถูกตัดทอน
การแก้ไข
ปัญหานี้ได้รับการแก้ไขแล้วในการอัปเดตที่สะสมต่อไปนี้สำหรับ SQL Server:
การอัปเดตที่สะสม2สำหรับ SQL Server ๒๐๑๗
การอัปเดตที่สะสม9สำหรับ SQL Server ๒๐๑๖
การอัปเดตที่สะสม6สำหรับ SQL Server ๒๐๑๖ SP1
การอัปเดตที่สะสมใหม่แต่ละรายการสำหรับ SQL Server ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตที่สะสมก่อนหน้านี้ ตรวจสอบการอัปเดตที่สะสมล่าสุดสำหรับ SQL Server:
การอัปเดตที่สะสมล่าสุดสำหรับ SQL Server ๒๐๑๗
สถานะ
ไมโครซอฟท์ได้รับการยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งแสดงอยู่ในส่วน "นำไปใช้กับ"
อ้างอิง
เรียนรู้เกี่ยวกับคำ ศัพท์เฉพาะทางที่ Microsoft ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์