KB3030619 – RJEŠENJE: prilikom slanja upita stupcu DATE u programu SQL Server 2014 vraćaju se netočni podaci

Primjenjuje se na
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use)

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:

      

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“.