Symptomer
Anta at du har en tabell som inneholder en kolonne med datatypen dato , og du har implementert gruppert kolonne butikken indeks (CCSI) for denne tabellen i Microsoft SQL Server-2014. Når du prøver å spørre tabellen ved hjelp av datatypen dato som en kvalifikator, kan feil data returneres. For eksempel: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 index WHERE S.c2 = @date -- variable of Date datatype
Oppløsning
Informasjon om oppdateringspakke
Hvis du vil løse dette problemet, får tak i Service Pack 1 for SQL Server-2014.
Hvis du vil ha mer informasjon om SQL Server 2014 Service Pack 1 (SP1), kan du se feil som er løst i SQL Server 2014 Service Pack 1.
Informasjon om kumulativ oppdatering
Dette problemet ble først løst i den følgende kumulative oppdateringen av SQL Server.
Hver nye kumulative oppdateringen for SQL Server inneholder alle hurtigreparasjonene og alle sikkerhetsreparasjoner som fulgte med den forrige kumulative oppdateringen. Sjekk ut de nyeste kumulative oppdateringene for SQL Server:
Hvis du vil ha mer informasjon
Bruk følgende kode for å gjenskape problemet:create table tab1(c1 int, c2 date)
insert into tab1 values (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 tab2 values (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 it truncate table t DECLARE @date DATE, @numDates INT INSERT INTO t VALUES(1, 1) DECLARE @date DATE, @numDates INT SELECT @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 -- CCI WHERE S.c2 = @dateStatus
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".