KB3030619 – JAVÍTÁS: A 2014-es SQL Server DÁTUM oszlopának lekérdezésekor helytelen adatokat adott vissza

Hatókör
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)

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.