Simptomi
Pretpostavimo da stvarate spremljenu proceduru koja koristi pokazivač na varijabli tablice u sustavu Microsoft SQL Server 2012 ili SQL Server 2014. Uz to, pohranjeni postupak obnavlja tablicu pomoću značajke gdje je struja naredbe skupa s kursorom. Na primjer, pohranjeni postupak može nalikovati na sljedeće:
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
Prilikom izvršavanja spremljene procedure pomoću procedure sp_refreshsqlmodule sustava, može doći do kršenja pristupa, a možete primiti i poruke o pogreškama koje nalikuju sljedećem:
MSG 596, razina 21, država 1Ne može nastaviti izvršavanje jer je sesija u stanju ubojstva. MSG 0, razina 20, došlo je do teške pogreške u tijeku s trenutnim naredbenom komandom. Rezultat, ako ih ima, trebao bi biti odbačen.
U tom slučaju pogreške koje nalikuju sljedećem zapisuju se i na zapisnike pogrešaka u sustavu SQL Server:
vrijeme datuma. 730 spid51 sqlEXCEPTION_ACCESS_VIOLATION 51 dump 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] ' vrijeme datuma. 730 spid51 * Datum vrijeme. 730 spid51 *
Rješenje
Kumulativne informacije o ažuriranju
Taj je problem riješen u sljedećim ažuriranjima:
-
Kumulativno ažuriranje 13 za SQL Server 2014
-
Kumulativno ažuriranje 6 za SQL Server 2014 Service Pack 1 (SP1)
-
Kumulativno ažuriranje 2 za SQL Server 2012 Service Pack 3 (SP3)
-
Kumulativno ažuriranje 11 za SQL Server 2012 Service Pack 2 (SP2)
Svako novo Kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sve sigurnosne ispravke uključene u prethodno Kumulativno ažuriranje. Pogledajte najnovija kumulativna ažuriranja za SQL Server:
Status
Microsoft je potvrdio da se radi o problemu u Microsoftovim proizvodima navedenim u odjeljku "odnosi se na".
Reference
Saznajte više o terminologiji koju Microsoft koristi za opisivanje softverskih ažuriranja.