Çok sayıda bağımsız değişken bir IN veya SQL Server'da bir NOT IN yan tümcesi içeren bir sorgu çalıştırdığınızda, yığın taşması olur.

Makale çevirileri Makale çevirileri
Makale numarası: 288095 - Bu makalenin geçerli olduğu ürünleri görün.
# Hata: 235727 (shiloh_bugs)
# Hata: 58274 (sqlbug_70)
Hepsini aç | Hepsini kapa

Belirtiler

Çok sayıda bağımsız değişken (binlik) içinde bir IN ya da bir NOT IN yan tümcesi içeren sorgu, yığın taşması oluşturabilir. Örneğin, aşağıdaki sorgu yığın taşması neden olur:
SELECT max(au_id) FROM authors WHERE au_id IN(1,2,5,......,11571)  
-- Query contains over 11570 arguments.
				
yığın taşması oluştuğunda, SQL Server hata günlüğüne aşağıdakine benzer bilgiler içerir:
2000-08-10 12:02:37.87 spid51    08/10/00 12:02:37 Stack Overflow Dump not possible - Exception c00000fd E at 0x00587286
2000-08-10 12:02:37.87 spid51    Address=587286 Exception Code = c00000fd
2000-08-10 12:02:37.87 spid51    eax=195922d0 ebx=19592338 ecx=2ad0e938 edx=00000007
2000-08-10 12:02:37.87 spid51    esi=196ce2c8 edi=19592180 eip=00587286 esp=2ac93000
2000-08-10 12:02:37.87 spid51    ebp=2ac93028 efl=00010202
2000-08-10 12:02:37.87 spid51    cs=1b ss=23 ds=23 es=23 fs=38 gs=0
2000-08-10 12:02:37.87 spid51    1: Return Address 00587286
2000-08-10 12:02:37.87 spid51    2: Return Address 0058728B.................
				
Bazı durumlarda, SQL Server, gerçekte kapatma yığın taşması nedeniyle olabilir.

Pratik Çözüm

Sorguyu yeniden ve #temp bir tabloyu bir IN yan tümcesi yerine IN listedeki değerleri içerir. Örneğin, önceki sorguda şu şekilde re-written olabilir:
CREATE TABLE #IN_values (au_id char(4))
INSERT INTO #IN_values select au_id FROM Table_with_values_123456789...

SELECT max(au_id)
FROM authors as A
JOIN #IN_values as I ON (A.au_id = I.au_id)
				

Durum

Microsoft, bu makalenin başında listelenen Microsoft ürünlerinde bir sorun olduğunu onaylamıştır.

Daha fazla bilgi

Istemcinin bağlantısı kesildi, ancak bu hata iletisi oluşabilir:
8621, Düzey 17, State 1, Hat 2 iç sorgu işlemcisi hatası: sunucu Hata: the query processor sorgu en iyi duruma getirilmesi sırasında yetersiz yığın alanı bitti.

Özellikler

Makale numarası: 288095 - Last Review: 2 Kasım 2007 Cuma - Gözden geçirme: 4.4
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
Anahtar Kelimeler: 
kbmt kbprb kbpending KB288095 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:288095

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com