Platí pro
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Příznaky

Pokud Microsoft SQL Server opakovaně provádí uloženou proceduru, která provádí následující akce, může dojít k chybě vyhodnocení:

  • Přebírá velký objekt, například varchar (max) nebo varbinary (max), jako argument a

  • Vytvoří dočasnou tabulku, která je v oboru provádění postupu, a

  • Pomocí argumentu velký objekt v dočasné tabulce.

V protokolu chyb systému SQL Server se může zobrazit chyba výrazu, která se podobá následujícímu:

Datum a čas SPID Chyba: 17065, závažnost: 16, stav: 1.

Datum a čas SPID SQL Server assertion: soubor: FilePath \filename, line = lineNumber neúspěšný kontrolní výraz = ' fFalse ' pokus o přístup k neúspěšnému popisovači objektu BLOB (1). K této chybě mohlo dojít při časování. Pokud chyba přetrvává i po novém spuštění příkazu, pomocí příkazu DBCC CHECKDB zkontrolujte, jestli databáze není strukturovaná, nebo restartujte server, aby nedošlo k poškození datových struktur v paměti.

Datum a čas SPID Chyba: 3624, závažnost: 20, stav: 1.

Datum a čas SPID : Kontrola kontrolního výrazu se nezdařila. Podrobnosti najdete v protokolu chyb systému SQL Server. Selhání výrazu obvykle způsobuje chybu softwaru nebo poškození dat. Pokud chcete zkontrolovat poškození databáze, zkuste spustit příkaz DBCC CHECKDB. Pokud jste se dohodli, že budete během instalace posílat výpisy Microsoftu, pošle vám do Microsoftu mini výpis. Aktualizace může být k dispozici od Microsoftu v nejnovější aktualizaci Service Pack nebo v opravě hotfix technické podpory.

Příčina

SQL Server má interní logiku, která zakáže ukládání dotazů, které odkazují na velké objekty, takže následné provádění neodkazuje na tyto LOBs (které byly vytvořené při předchozích spuštěních, a proto jsou neplatné pro následné spuštění). Tato logika nezpracovala případy odloženého překladu IP adres (DNR) v dočasných tabulkách, které tyto plány vyvolaly. Dočasné tabulky s oborem jsou nákladné pro vytváření a SQL Server je ukládá do mezipaměti, aby je bylo možné opakovaně používat. Tím se zabrání překompilování takových dotazů kvůli změnám schématu.

Přečtěte si další informace o překladu IP adres.

Řešení

Tento problém je opravený v následujících kumulativních aktualizacích systému SQL Server:

       Kumulativní aktualizace 8 pro SQL Server 2016 SP1  

       Kumulativní aktualizace 4 pro SQL Server 2017

       Kumulativní aktualizace 10 pro SQL Server 2014 Service Pack 2

Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a opravy zabezpečení, které byly v předchozím buildu. Podívejte se na nejnovější kumulativní aktualizaci SQL serveru:

Nejnovější kumulativní aktualizace pro SQL Server 2016

Nejnovější kumulativní aktualizace pro SQL Server 2017

nejnovější kumulativní aktualizace pro SQL Server 2014

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Odkazy

Informace o terminologii , kterou Microsoft používá k popisu aktualizací softwaru.

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.