อาการ
สมมติว่าคุณมีตารางที่มีคอลัมน์ชนิดข้อมูล วันที่ และคุณได้นำดัชนีที่เก็บแผนภูมิคอลัมน์แบบกลุ่ม (CCSI) ในตารางนี้ใน Microsoft SQL Server ๒๐๑๔ เมื่อคุณพยายามที่จะสอบถามตารางโดยใช้ชนิดข้อมูล วันที่ เป็นตัวบ่งคุณลักษณะข้อมูลที่ไม่ถูกต้องอาจถูกส่งกลับ ตัวอย่างเช่น:create table tab2(c1 int, c2 date, c3 varchar(10)) CREATE CLUSTERED COLUMNSTORE INDEX [CCI_tab2] ON [tab2] WITH (DROP_EXISTING = OFF)GO select *FROM tab2 S -- Table with clustered columnstore indexWHERE S.c2 = @date -- variable of Date datatype
การแก้ไข
ข้อมูล service pack
เมื่อต้องการแก้ไขปัญหานี้ให้ขอรับ Service Pack 1 สำหรับ SQL Server ๒๐๑๔
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ SQL Server ๒๐๑๔ Service Pack 1 (SP1) ให้ดูที่ข้อบกพร่องที่ได้รับการแก้ไขใน SQL Server ๒๐๑๔ Service pack 1
ข้อมูลการอัปเดตที่สะสม
ปัญหานี้ได้รับการแก้ไขครั้งแรกในการอัปเดตที่สะสมต่อไปนี้ของ SQL Server
การอัปเดตที่สะสมใหม่แต่ละรายการสำหรับ SQL Server ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตที่สะสมก่อนหน้านี้ ตรวจสอบการอัปเดตที่สะสมล่าสุดสำหรับ SQL Server:
ข้อมูลเพิ่มเติม
ใช้โค้ดต่อไปนี้เพื่อทบทวนเกิดปัญหานี้:create table tab1(c1 int, c2 date) insert into tab1values (1 , '2000-01-01') CREATE NONCLUSTERED INDEX [idxtab1c2] ON tab1( c2 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) create table tab2(c1 int, c2 date, c3 varchar(10)) insert into tab2values (1, '2000-01-01', 'test') CREATE CLUSTERED COLUMNSTORE INDEX [CCI_tab2] ON [tab2] WITH (DROP_EXISTING = OFF)GO create table t([runId] int not null, [scalingFactor] float not null) -- REPRO QUERY. Below batch is expected to return a row but we don’t get ittruncate table tDECLARE @date DATE, @numDates INT INSERT INTO t VALUES(1, 1)DECLARE @date DATE, @numDates INTSELECT @date = max(R.c2) , @numDates = COUNT(distinct R.c2)FROM tab1 R INNER JOIN t D ON R.c1 = D.runId select *FROM tab2 S -- CCIWHERE S.c2 = @date
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"