Tünetek
Tegyük fel, hogy van egy DATE adattípusú oszlopot tartalmazó táblája, és a Microsoft SQL Server 2014 alkalmazásban erre a táblára fürtözött oszlopok tárindexét (CCSI) alkalmazta. Ha a DATE adattípust jelölőként használva próbálja meg lekérdezni a táblát, helytelen adatokat adhat vissza.
Például:Táblázat létrehozása lap2
(C1 int, C2 dátum, C3 varchar(10))
CSOPORTOSÍTOTT OSZLOPCENTRIKUS INDEX LÉTREHOZÁSA [CCI_tab2] A [TAB2] OLDALON A (DROP_EXISTING = KI) HASZNÁLATÁVAL
GO
select *
FROM tab2 S – Tábla csoportosított oszloptár indexével
WHERE S.c2 = @date -- Dátum adattípus változója
Megoldás
Szervizcsomag adatai
A probléma megoldásához szerezze be az 1. szervizcsomagot az SQL Server 2014-hez.
Az SQL Server 2014 Service Pack 1 (SP1) szervizcsomaggal kapcsolatban az SQL Server 2014 Service Pack 1 szervizcsomagban kijavított hibák című témakörben talál további információt.
Összegző frissítéssel kapcsolatos információk
Ezt a hibát először az SQL Server következő összegző frissítésében javítottuk.
Javaslat: Telepítse az SQL Server legújabb összegző frissítését
Az SQL Server minden új összegző frissítése tartalmazza az összes gyorsjavítást és minden biztonsági javítást, amely az előző kumulatív frissítésben szerepelt. Tekintse meg az SQL Server legújabb összegző frissítéseit:
További információ
A probléma ismételt megjelenítéséhez használja az alábbi kódot:create table tab1
(C1 int, C2 dátum)
Beszúrás ide: Tab1
Értékek (1 , '2000-01-01')
CREATE NONCLUSTERED INDEX [idxtab1c2] ON TAB1
(
c2 ASC
)
WITH (PAD_INDEX = KI, STATISTICS_NORECOMPUTE = KI, SORT_IN_TEMPDB = KI, DROP_EXISTING = KI, ONLINE = KI, ALLOW_ROW_LOCKS = BE, ALLOW_PAGE_LOCKS = BE)
create table tab2
(C1 int, C2 dátum, C3 varchar(10))
Beszúrás ide: Tab2
Értékek (1, '2000-01-01', 'Teszt')
CSOPORTOSÍTOTT OSZLOPCENTRIKUS INDEX LÉTREHOZÁSA [CCI_tab2] A [TAB2] OLDALON A (DROP_EXISTING = KI) HASZNÁLATÁVAL
GO
"T táblázat létrehozása"
([runId] int not null, [scalingFactor] float not null)
-- REPRODUKCIÓS LEKÉRDEZÉS. Az alábbi köteg várhatóan egy sort ad vissza, de nem kapjuk meg
T táblázat csonkolása
DÁTUM DEKLARÁLÁSA @date , @numDates INT
INSERT INTO T ÉRTÉKEK(1, 1)
DÁTUM DEKLARÁLÁSA @date , @numDates INT
SELECT @date = max(R.c2) , @numDates = DARAB(különböző R.c2)
FROM tab1 R
INNER JOIN t D ON R.c1 = D.runId
select *
FROM tab2 S -- CCI
WHERE S.c2 = @date
Állapot
A Microsoft megerősítette, hogy ez egy olyan probléma a Microsoft-termékekben, amely az „Érintett szolgáltatás“ című szakaszban van felsorolva.