Gejala
Asumsikan Anda memiliki tabel yang berisi kolom tipe data tanggal , dan Anda telah menerapkan indeks penyimpanan kolom tergugus (ccsi) pada tabel ini di Microsoft SQL Server 2014. Ketika Anda mencoba untuk kueri tabel dengan menggunakan tipe data tanggal sebagai penentu, data yang salah mungkin dikembalikan. Misalnya: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
Pemecahan Masalah
Informasi paket layanan
Untuk mengatasi masalah ini, Dapatkan Service Pack 1 untuk SQL Server 2014.
Untuk informasi selengkapnya tentang SQL Server 2014 Service Pack 1 (SP1), lihat bug yang diperbaiki di SQL server 2014 Service Pack 1.
Informasi pembaruan kumulatif
Masalah ini pertama kali diperbaiki dalam pembaruan kumulatif SQL Server berikut ini.
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:
Informasi Selengkapnya
Gunakan kode berikut untuk mereproduksi masalah ini: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
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".