อาการ
พิจารณาสถานการณ์ต่อไปนี้:
-
คุณมีคอมพิวเตอร์ที่ใช้ Microsoft SQL Server ๒๐๑๒หรือ SQL Server ๒๐๑๔
-
คุณสร้างการตรวจสอบและ หลายส่วนที่มีข้อความที่มีขนาดใหญ่กว่าไบต์๓๐๐๐
-
คุณพยายามเริ่มการตรวจสอบโดยใช้คำสั่งALTER
ในสถานการณ์สมมตินี้การตรวจสอบไม่เริ่มทำงานและคุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
Msg ๑๐๒ระดับ15สถานะ1บรรทัด LineNumber ไวยากรณ์ที่ไม่ถูกต้องใกล้ 'SomeStrings' Msg ๒๕๗๑๑ระดับ16สถานะ2บรรทัด LineNumber การแยกวิเคราะห์เพรดิเคตเหตุการณ์ล้มเหลว
บันทึกย่อ โปรดทราบว่าปัญหาที่นี่คือข้อผิดพลาดทางไวยากรณ์จะถูกยกกำลังอย่างไม่ถูกต้องในขั้นตอนที่3เมื่อคุณพยายาม เริ่มการติดตาม การแก้ไขนี้จะทำให้เกิดข้อผิดพลาดในตำแหน่งที่เหมาะสมในขั้นตอนที่2ที่คุณ สร้างการตรวจสอบที่มีส่วนคำสั่ง where ที่มากกว่า (>) ๓๐๐๐อักขระ การแก้ไขนี้จะไม่เปลี่ยนแปลงขีดจำกัดของนิพจน์เพรดิเคต
นิพจน์เพรดิเคตยังถูกจำกัดไว้ที่อักขระ๓๐๐๐ โปรดดูที่predicate_expressionในบทความ BOL ต่อไปนี้: การเปลี่ยนแปลงการตรวจสอบเซิร์ฟเวอร์ (Transact SQL)
การแก้ไข
ปัญหานี้ได้รับการแก้ไขแล้วในการอัปเดตที่สะสมของ SQL Server ครั้งแรก
การอัปเดตที่สะสม1สำหรับ SQL Server ๒๐๑๔ /en-us/help/2931693
การอัปเดตที่สะสม7สำหรับ SQL Server ๒๐๑๒ SP1 /en-us/help/2894115
การอัปเดตที่สะสมใหม่แต่ละรายการสำหรับ SQL Server ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตที่สะสมก่อนหน้านี้ ตรวจสอบการอัปเดตที่สะสมล่าสุดสำหรับ SQL Server:
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"