KB2938460 – JAVÍTÁS: Hozzáférés-megsértés történik, amikor egy natív módon lefordított tárolt eljárásban próbálja használni a datepart (hétköznap) értéket a SQL Server 2014-ben

Hatókör
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Tünetek

Feltételezzük, hogy Microsoft SQL Server 2014-et használ. Amikor natív módon lefordított tárolt eljárásban próbálja használni a datepart (hétköznap) függvényt, hozzáférés-megsértést és a kapcsolat megszakad. Ezenkívül a következő hibaüzenet is megjelenik:

Megjegyzés

Súlyos hiba történt az aktuális parancsban. Az esetleges eredményeket el kell vetni.

Ok

A problémát az SQL Server 2014 hibája okozta.
A datepart karakter argumentummal való használata implicit konvertálást vezet be datetimeoffset értékké. A natív tárolt eljárás nem támogatja a datetimeoffset.

Megoldás

A gyorsjavítás alkalmazása után az SQL Server új logikát vezet be, amely natív tárolt eljárás esetén a char argumentumot datetime2 értékké, normál tárolt eljárás esetén pedig datetime-eltolássá alakítja.
A hibát először az SQL Server következő összegző frissítésében javítottuk.

1. összegző frissítés a SQL Server 2014-hez /en-us/help/2931693

Az SQL Server összegző frissítéseinek ismertetése

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:

      

Kerülő megoldás

A probléma megkerüléséhez explicit módon konvertáljon egy támogatott datetime típusra.

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