Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

Tarayıcınız desteklenmiyor

Siteyi kullanmak için tarayıcınızı güncelleştirmeniz gerekir.

Internet Explorer'ın en son sürümüne güncelleştirin

Düzeltme: BIR SELECT sorgusu beklenmedik biçimde yanlış sayıda satır SQL Server 2005 Mobile Edition ve SQL Server 2005 Compact Edition verir

Ö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:933697
Belirtiler
SQL Server 2005 Mobile Edition ve Microsoft SQL Server 2005 Compact Edition bir SELECT sorgusu çalıştırdığınızda, sorgu, beklenmedik biçimde yanlış sayıda satır döndürür. Bu sorun, aşağıdaki koşullar geçerli olursa oluşur:
  • SELECT sorgusu, bir iç birleşim içerir.
  • Birleştirilen sütun üzerinde dizin bir birleştirilmiş iki tablo vardır. Diğer tablo sütunlarından birinin dizin vardır.
Örneğin, SQL Server 2005 Mobile Edition'da aşağıdaki sorguyu çalıştırmak:
select * from T1, T2 where T1.Col = T2.Col1 order by T1.Col
Not bu örnekte, dizin <a1>Tablo</a1> T1 olan sütunu Col. Tablo T2 sütunu Sütun1'üzerinde dizin yok.
Neden
Bu sorun, sorgu en iyi duruma getiricisi önceki planı tümüyle atmak değil nedeniyle oluşur. Sorguyu çalıştırmak için en iyi planı sorgu en iyi duruma getiricisi karar önce sorgu en iyi duruma getiricisi birden fazla sorgu planları dikkate alır. Bazı durumlarda, sorgu en iyi duruma getiricisi dizin koşulu değerlendirmek için kullandığı bir plan bulabilirsiniz. Ancak, sorgu en iyi duruma getiricisi daha iyi bir plan daha sonra bulabilir. Bu durumda, sorgu en iyi duruma getiricisi daha iyi bir plan kullanılacak önceki planı atar.
Çözüm
Bu sorunu gidermek için aşağıdaki yöntemlerden birini kullanın:
  • Ikinci tablodaki birleştirilmiş sütun üzerinde bir dizin oluşturun.
  • Birleştirilen ilk tablodaki sütun dizini silin.
Not "Belirtiler" bölümündeki örnekte, ikinci tablonun birleştirilen sütunu T2.Col1 ' dir. Birleştirilen ilk sütunu T1.Col ' dir.
Durum
Microsoft bu durumun, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bir hata olduğunu onaylamıştır.
Daha fazla bilgi

Sorunu Yeniden Oluşturma Adımları

  1. Bir veritabanı SQL Server 2005 Mobile Edition'da aşağıdaki ifadeleri çalıştırın:
    CREATE TABLE T1 (COL INT);GO;CREATE INDEX T1_IDX ON T1 (COL);GO;INSERT INTO T1 VALUES (1);INSERT INTO T1 VALUES (2);INSERT INTO T1 VALUES (3);GO;CREATE TABLE T2 (COL1 INT, COL2 INT);GO;INSERT INTO T2 VALUES (1,1);INSERT INTO T2 VALUES (2,2);INSERT INTO T2 VALUES (3,3);GO;
  2. Aşağıdaki ifadeyi çalıştırın:
    select * from T1, T2 where T1.Col = T2.Col1 order by T1.Col
    , "Belirtiler" bölümünde anlatılan sorunla karşılaşabilirsiniz.

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 933697 - Son İnceleme: 03/13/2007 19:39:22 - Düzeltme: 1.2

  • Microsoft SQL Server 2005 Mobile Edition
  • Microsoft SQL Server 2005 Compact Edition
  • kbmt kbtshoot kbexpertiseadvanced kbbug KB933697 KbMttr
Geri bildirim
=4050&did=1&t=">