Znaki
Napaka v izjavi se lahko pojavi, ko Microsoft SQL Server večkrat izvede shranjeno proceduro, ki izvede naslednje:
- Vzame za argument velik predmet, kot je varchar(max) ali varbinary(max);
- Ustvari začasno tabelo z obsegom za izvajanje procedure.
- Uporablja argument velikega predmeta v začasni tabeli.
Morda boste v dnevniku napak v storitvi SQL Server našli podobno napaki trditve:
SPID za datum/čas Napaka: 17065, resnost: 16, stanje: 1.
Datum/čas Potrditev SPID SQL Server: Datoteka: FilePath\FileName, line = LineNumber Failed Assertion = 'fFalse' Poskus dostopa do potekle ročice zbirke dvojiških podatkov (1). Ta napaka je morda povezana s časom. Če napake ne odpravite tudi po vnovičnem zagonu izjave, uporabite DBCC CHECKDB, da preverite strukturno integriteto zbirke podatkov, ali pa znova zaženite strežnik, da zagotovite, da podatkovne strukture v pomnilniku niso poškodovane.
SPID za datum/čas Napaka: 3624, resnost: 20, stanje: 1.
SPID za datum/čas Preverjanje uveljavljanja sistema ni uspelo. Podrobnosti najdete v dnevniku napak strežnika SQL Server. Napako pri izjavljanju običajno povzroči napaka programske opreme ali poškodbe podatkov. Če želite poiskati poškodbe zbirke podatkov, zaženite DBCC CHECKDB. Če ste se med nastavitvijo strinjali s pošiljanjem izvozov Microsoftu, bo Microsoftu poslan mini izvoz. Microsoft lahko na voljo posodobitev v najnovejšem servisnem paketu ali v obliki sprotnega popravka tehnične podpore.
Vzrok
SQL Server ima notranjo logiko za onemogočanje predpomnjenja poizvedb, ki se sklicujejo na velike predmete, tako da se poznejše izvedbe ne sklicujejo na tiste LOB (ki so bili ustvarjeni med prejšnjimi zagoni in so zato neveljavni za naslednje zagone). Ta logika ni obravnavala primera odložene razrešitve imena (DNR) v začasnih tabelah, ki je povzročila, da so bili ti načrti predpomnjeni. Začasne tabele z obsegom so drage za ustvarjanje in SQL Server jih shrani v predpomnilnik za vnovično uporabo v poznejših izvedbah. To prepreči ponovno prevajanje takšnih poizvedb zaradi sprememb sheme.
Več informacij o ločljivosti odloženega imena.
Rešitev
Ta težava je odpravljena v naslednjih zbirnih posodobitvah za SQL Server:
Zbirna posodobitev 8 za SQL Server 2016 SP1
Zbirna posodobitev 4 za SQL Server 2017
Zbirna posodobitev 10 za SQL Server 2014 s servisnim paketom SP2
Več o zbirnih posodobitvah za SQL Server
Vsaka nova zbirna posodobitev za SQL Server vsebuje vse sprotne in varnostne popravke, ki so bili vključeni v prejšnjo graditev. Oglejte si najnovejšo zbirno posodobitev za SQL Server:
Najnovejša zbirna posodobitev za SQL Server 2016
Najnovejša zbirna posodobitev za SQL Server 2017
Najnovejše zbirne posodobitve za SQL Server 2014
Stanje
Microsoft je potrdil, da gre za težavo v Microsoftovih izdelkih, ki so navedeni v razdelku »Velja za«.
Sklici
Preberite več o terminologiji , ki jo Microsoft uporablja za opisovanje posodobitev programske opreme.