Düzeltme: sql Server 2008'de bir Ekle seçin UNION all deyimini çalıştırdığınızda hatalı sonuçlar

Makale çevirileri Makale çevirileri
Makale numarası: 2530921 - Bu makalenin geçerli olduğu ürünleri görün.

Microsoft, Microsoft sql Server 2008 Service Pack 1 Düzeltme karşıdan yüklenebilen bir dosya dağıtır. Düzeltmeleri birikimli olduğu için her yeni sürüm tüm düzeltmeleri içerir ve önceki sql Server 2008 Service Pack 1'de bulunan tüm güvenlik düzeltmelerini düzeltmesi.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Çalıştırdığınızda bir INSERT SELECT BİRLİĞİ TÜMdeyimi, sql Server 2008'de, deyimin sonucu yanlış olabilir kaynak tablosu,SEÇİNyan hedef tablosu olarak kullanılanEKLE yan tümcesi.

Örneğin, dört tablolar oluşturmak için aşağıdaki kodu çalıştırın:
CREATE TABLE [TabA] (M VARCHAR(20), W VARCHAR(20)) CREATE TABLE [TabB] (M VARCHAR(20), W VARCHAR(20), R VARCHAR(20)) CREATE TABLE [TabC] (P VARCHAR(6), M CHAR(20), A NUMERIC(13)) CREATE TABLE [TabD] (P VARCHAR(6), W VARCHAR(20), M VARCHAR(20), D NUMERIC(13), E DATETIME, F DATETIME)
Bazı değerlere Ekle TabA, TabB, ve TabD tablolar ve sonra aşağıdaki komutu çalıştırın INSERT SELECT BİRLİĞİ TÜM ifade:

INSERT INTO [TabC] (P, M, A) SELECT T1.P,T1.M,T1.D / SUM(1) OVER(PARTITION BY P) FROM [TabD] T1 INNER JOIN [TabA] T2 ON (T1.M = T2.M AND T1.W = T2.W) WHERE NOT EXISTS (SELECT * FROM [TabC] E1 WHERE T1.P = E1.P) UNION ALL SELECT T1.P,T2.M,T1.D / SUM(1) OVER(PARTITION BY P) FROM [TabD] T1 INNER JOIN [TabB] T2 ON (T1.M = T2.R AND T1.W = T2.W) WHERE NOT EXISTS (SELECT * FROM [TabC] E1 WHERE T1.P = E1.P) GO
Bu senaryoda, hatalı sonuçlar alırsınız ve bazı kayıtlar yanlış eklenir. TabC Tablo.

Çözüm

Güncelleştirme toplaması bilgileri

sql Server 2008 Service Pack 1 toplu güncelleştirme 14

Bu sorunla ilgili düzeltme, önce sql Server 2008 Service Pack 1 için toplu güncelleştirme 14'de yayımlanmıştır. Bu toplu güncelleştirme paketi hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
2527187 sql Server 2008 Service Pack 1 için toplu güncelleştirme paketi 14
Not Yapılar birikimli olduğu için her yeni düzeltme sürüm tüm düzeltmeleri içerir ve önceki sql Server 2008'de bulunan tüm güvenlik düzeltmelerini düzeltmesi. Microsoft, bu düzeltmeyi içeren en son düzeltme sürümü uygulama önermektedir. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
970365 sql Server 2008, sql Server 2008 Service Pack 1'den sonra yayımlanan oluşturur
Microsoft sql Server 2008 için belirli bir sql Server hizmet paketi düzeltmeleri oluşturulur. sql Server 2008 Service Pack 1 yüklemesi için sql Server 2008 Service Pack 1 düzeltme uygulamalısınız. Varsayılan olarak, sql Server hizmet paketi içinde sağlanan düzeltme en ileri sql Server hizmet paketi dahil edilir.

Durum

Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.

Özellikler

Makale numarası: 2530921 - Last Review: 16 Mayıs 2011 Pazartesi - Gözden geçirme: 1.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Enterprise Evaluation
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 Standard Edition for Small Business
Anahtar Kelimeler: 
kbqfe kbexpertiseadvanced kbsurveynew kbfix kbmt KB2530921 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:2530921

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