Applies ToSQL Server 2012 Service Pack 3 SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Sümptomid

Oletagem, et luua salvestatud protseduur, mis kasutab kursorit tabeli muutujas Microsoft SQL Server 2012 või SQL Server 2014. Lisaks värskendab salvestatud protseduur tabelit, kasutades seda, kus on koos kursoriga märge. Näiteks võib teie salvestatud protseduur sarnaneda järgmisega.

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 cccCLOSE ccc  SELECT * FROM @TableVar END 

Kui täidate salvestatud protseduuri sp_refreshsqlmodule süsteemi salvestatud protseduuri abil, võib ilmneda juurdepääsurikkumine ja võidakse kuvada tõrketeated, mis näeb välja järgmine:

MSG 596, tase 21, riigi 1Cannot jätkake täitmist, kuna seanss on olekus Kill. MSG 0, tase 20, riigi 0A raske tõrge ilmnes praegune käsk. Tulemid, kui need on olemas, tuleks hävitada.

Selles olukorras kirjutatakse SQL serveri tõrkelogi tõrked, mis näeb välja järgmine:

kuupäeva kellaaeg. 730 spid51 SqlDumpExceptionHandler: protsessi 51 genereeritud fataalne erand c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.date time.730 spid51 * *******************************************************************************date time.730 spid51 *date time.730 spid51 * BEGIN STACK DUMP:date time.730 spid51 * date time spid 51date time.730 spid51 *date time.730 spid51 *date time.730 spid51 * Exception Address = 00007FFC270236D5 Module(sqllang+00000000005036D5)date time.730 spid51 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATIONdate time.730 spid51 * Access Violation occurred reading address 0000006F00620074date time.730 spid51 * Input Buffer 136 bytes -date time.730 spid51 * EXECUTE sp_refreshsqlmodule N'[dbo]. [usp_TestSP] "kuupäeva kellaaeg. 730 spid51 * Date Time. 730 spid51 *

Lahendus

Kumulatiivse värskenduse teave

See probleem on lahendatud järgmistes värskendustes.

Iga uus koondvärskenduses SQL Server sisaldab kõiki käigultparandused ja kõik turvaparandusi, mis kuulusid eelmise koondvärskenduse. Vaadake SQL serveri kumulatiivseid värskendusi.

Olek

Microsoft on kinnitanud, et see probleem esineb jaotises "kehtib järgmiste toodete kohta" loetletud Microsofti toodetes.

Viited

Siit leiate teavet selle kohta, mida Microsoft kasutab tarkvaravärskenduste kirjeldamiseks.

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.