Ongelman ilmenemistapa
Oletetaan, että luot tallennetun toimintosarjan, jossa kohdistin on Microsoft SQL Server 2012:ssa tai SQL Server 2014:ssä. Lisäksi tallennettu toimintosarja päivittää taulukon käyttämällä WHERE-CURRENT OF -lauseketta yhdessä kohdistimen kanssa.
Tallennettu toimintosarja voi näyttää esimerkiksi seuraavanlaiselta:
CREATE PROCEDURE dbo.usp_TestSP AS
BEGIN
DECLARE @TableVar TABLE (SomeInt INT NULL)
INSERT @TableVar VALUES (NULL)
DECLARE @curInt INT, @newInt INT
SET @newInt = 1
DECLARE ccc CURSOR LOCAL FOR
SELECT SomeInt FROM @TableVar WHERE SomeInt IS NULL
OPEN ccc
FETCH NEXT FROM ccc INTO @curInt
UPDATE @TableVar SET SomeInt = @newInt
WHERE CURRENT OF ccc
CLOSE ccc
SELECT * FROM @TableVar
END
Kun suoritat tallennetun toimintosarjan käyttämällä sp_refreshsqlmodule järjestelmään tallennettua toimintosarjaa, saattaa tapahtua käyttöoikeusrikkomus ja näyttöön saattaa tulla seuraavanlaisia virhesanomia:
Huomautus
Msg 596, taso 21, tila 1Suoritusta ei voi jatkaa, koska istunto on tappotilassa. Sanoma 0, taso 20, tila 0 Nykyisessä komennossa tapahtui vakava virhe. Mahdolliset tulokset on hylättävä.
Tässä tilanteessa seuraavankaltaiset virheet kirjoitetaan myös SQL Server -virhelokeihin:
Huomautus
date time.730 spid51 SqlDumpExceptionHandler: Prosessi 51 loi vakavan poikkeuksen c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server lopettaa tämän prosessin.
date time.730 spid51 * *******************************************************************************
date time.730 spid51 *
date time.730 spid51 * ALOITA PINOVEDOS:
Date Time.730 SPID51 * Päivämäärä ja Kellonaika SPID 51
date time.730 spid51 *
date time.730 spid51 *
date time.730 spid51 * Poikkeusosoite = 00007FFC270236D5 Module(sqllang+00000000005036D5)
date time.730 spid51 * Poikkeuskoodi = c0000005 EXCEPTION_ACCESS_VIOLATION
date time.730 spid51 * Käyttörikkomus luettaessa osoitetta 0000006F00620074
date time.730 spid51 * Syöttöpuskuri 136 tavua -
date time.730 spid51 * EXECUTE sp_refreshsqlmodule N'[dbo]. [usp_TestSP]"
date time.730 spid51 *
date time.730 spid51 *
Ratkaisu
Kumulatiiviset päivitystiedot
Ongelma on korjattu seuraavissa päivityksissä:
- SQL Server 2014:n kumulatiivinen päivitys 13
- SQL Server 2014 Service Pack 1:n (SP1) kumulatiivinen päivitys 6
- SQL Server 2012 Service Pack 3:n (SP3) kumulatiivinen päivitys 2
- SQL Server 2012 Service Pack 2:n (SP2) kumulatiivinen päivitys 11
Suositus: Asenna uusin kumulatiivinen päivitys SQL Server:lle
Jokainen uusi SQL Server -kumulatiivinen päivitys sisältää kaikki edelliseen kumulatiiviseen päivitykseen sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Tutustu SQL Serverin uusimpiin kumulatiivisiin päivityksiin:
- SQL Server 2014:n uusin kumulatiivinen päivitys
- SQL Server 2014 SP1:n uusin kumulatiivinen päivitys
- SQL Server 2012 SP2:n uusin kumulatiivinen päivitys
- SQL Server 2012 SP3:n uusin kumulatiivinen päivitys
Tila
Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.
Viitteet
Lue tietoja Microsoftin ohjelmistopäivitystensä kuvaamiseen käyttämästä sanastosta.