Simptomi
Pretpostavimo da imate tablicu koja sadrži stupac vrste podataka DATE i da ste u sustavu Microsoft SQL Server 2014 u toj tablici implementirali indeks pohrane klasteriranih stupaca (CCSI). Kada pokušate poslati upit za tablicu koristeći vrstu podataka DATE kao kvalifikator, možda će vam se vratiti netočni podaci.
Na primjer:tablica stvaranja tablice tab2
(C1 int, C2 datum, C3 varchar(10))
CREATE CLUSTERED COLUMNSTORE INDEX [CCI_tab2] ON [TAB2] WITH (DROP_EXISTING = ISKLJUČENO)
GO
Odaberite *
FROM tab2 S – tablica s grupiranim indeksom spremišta stupaca
WHERE S.c2 = @date -- varijabla vrste podataka Datum
Rješenje
Informacije o servisnom paketu
Da biste riješili taj problem, nabavite Service Pack 1 za SQL Server 2014.
Dodatne informacije o servisnom paketu SQL Server 2014 Service Pack 1 (SP1) potražite u ispravljenim programskim pogreškama u servisnom paketu SQL Server 2014 Service Pack 1.
Informacije o kumulativnom ažuriranju
Taj je problem prvi put riješen u sljedećem kumulativnom ažuriranju sustava SQL Server.
Preporuka: instalirajte najnovije kumulativno ažuriranje za SQL Server
Svako novo kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sigurnosne popravke koji su obuhvaćeni prethodnim kumulativnim ažuriranjem. Pogledajte najnovija kumulativna ažuriranja za SQL Server:
- Najnovije kumulativno ažuriranje za SQL Server 2014 SP1
- Najnovije kumulativno ažuriranje za SQL Server 2014
Dodatne informacije
Upotrijebite sljedeći kod da biste ponovili ovaj problem:Kartica Stvaranje tablice1
(C1 int, C2 datum)
Umetanje u karticu1
Vrijednosti (1 , '2000-01-01')
CREATE NONCLUSTERED INDEX [idxtab1c2] ON tab1
(
c2 ASC
)
WITH (PAD_INDEX = ISKLJUČENO, STATISTICS_NORECOMPUTE = ISKLJUČENO, SORT_IN_TEMPDB = ISKLJUČENO, DROP_EXISTING = ISKLJUČENO, NA MREŽI = ISKLJUČENO, ALLOW_ROW_LOCKS = UKLJUČENO, ALLOW_PAGE_LOCKS = UKLJUČENO)
Kartica Stvaranje tablice 2
(C1 int, C2 datum, C3 varchar(10))
Umetni u karticu2
Vrijednosti (1, '2000-01-01', 'Test')
CREATE CLUSTERED COLUMNSTORE INDEX [CCI_tab2] ON [TAB2] WITH (DROP_EXISTING = ISKLJUČENO)
GO
Stvaranje tablice T
([runId] int not null, [scalingFactor] float not null)
-- UPIT ZA REPRODUKCIJU. Očekuje se da će serija ispod vratiti redak, ali ga ne shvaćamo
Skraćivanje tablice T
DEKLARIRAJ @date DATUM, @numDates INT
UMETNI U T VRIJEDNOSTI(1, 1)
DEKLARIRAJ @date DATUM, @numDates INT
SELECT @date = max(R.c2) , @numDates = COUNT(distinct R.c2)
FROM tab1 R
INNER JOIN t D ON R.c1 = D.runId
Odaberite *
FROM tab2 S -- CCI
WHERE S.c2 = @date
Status
Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku „Odnosi se na“.