Symptomen
Stel dat u een tabel hebt die de kolom datum gegevenstype bevat en u de gegroepeerde column store index (CCSI) in deze tabel in Microsoft SQL Server 2014. Wanneer u probeert een query uit te voeren op de tabel met het datum gegevenstype als scheidingsteken, kunnen er onjuiste gegevens worden geretourneerd. Voorbeeld: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
Oplossing
Informatie over service packs
U kunt dit probleem oplossen door Service Pack 1 voor SQL Server 2014 te downloaden.
Zie voor meer informatie over SQL Server 2014 Service Pack 1 (SP1) bugs die zijn opgelost in SQL server 2014 Service Pack 1.
Cumulatieve update gegevens
Dit probleem is voor het eerst opgelost in de volgende cumulatieve update van SQL Server.
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige cumulatieve update. Bekijk de nieuwste cumulatieve updates voor SQL Server:
Meer informatie
Gebruik de volgende code om dit probleem te reproduceren: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 heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.