KB3138930-Düzeltme: SQL Server 'da bir tablo değişkeninde imleç kullanan bir depolanmış yordam yürüttüğünüzde erişim ihlali

Belirtiler

Microsoft SQL Server 2012 veya SQL Server 2014 ' de bir tablo değişkeninde imleç kullanan bir saklı yordam oluşturduğunuzu varsayalım. Ayrıca, saklı yordam, imleç ile birlikte WHERE deyimini kullanarak tabloyu güncelleştirir. Örneğin, saklı yordamınız şuna benzeyebilir:

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 

Depolanan yordamınızı sp_refreshsqlmodule sistem saklı yordamını kullanarak yürüttüğünüzde, bir erişim ihlali oluşabilir ve aşağıdakine benzer hata iletileri alabilirsiniz:

İleti 596, düzey 21, durum 1, oturum sonlandırma durumunda olduğundan yürütmeye devam edemez. İleti 0, düzey 20, durum 0geçerli komutta önemli bir hata oluştu. Sonuçlar (varsa) atılır.

Bu durumda, SQL Server hata günlüklerine aşağıdakine benzer hatalar verilmiştir:

Tarih saat. 730 spid51 SqlDumpExceptionHandler: EXCEPTION_ACCESS_VIOLATION 51 süreç 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] ' Tarih saat. 730 spid51 * tarih saat. 730 spid51 *

Çözüm

Toplu güncelleştirme bilgileri

Bu sorun aşağıdaki güncelleştirmelerde düzeltilmiştir:

Her bir SQL Server toplu güncelleştirmesi, önceki toplu güncelleştirmeyle birlikte gelen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. En son SQL Server güncelleştirmelerini gözden geçirin:

Durum

Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.

Başvurular

Microsoft 'un yazılım güncelleştirmelerini açıklamak için kullandığı terminoloji hakkında bilgi edinin.

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Microsoft Insider 'a katılın

Bu bilgi yardımcı oldu mu?

Geri bildiriminiz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×