Bir tabloda bir INSERT SELECT deyimi çalıştırdığınızda SQL Server 2008'deki DÜZELTME: Hata iletisi: "'<primarykey>' PRIMARY KEY kısıtlaması ihlali. Yinelenen anahtar '<tablename>' nesne eklenemiyor"

Makale çevirileri Makale çevirileri
Makale numarası: 970507 - Bu makalenin geçerli olduğu ürünleri görün.
Microsoft, Microsoft SQL Server 2008'in düzeltmeleri tek bir yüklenebilir dosya dağıtır. Düzeltmeleri birikimli olduğu için her yeni sürüm, tüm düzeltmeleri içerir ve sürüm önceki SQL Server 2008'in içerdiği tüm güvenlik düzeltmelerini düzeltin.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Şu senaryoyu inceleyin:
  • Çok işlemcili bir bilgisayarda Microsoft SQL Server 2008 var.
  • Bir tabloda birincil anahtar içeren bir INSERT SELECT deyimi var.

    NotINSERT SELECT deyimi içinde verileri aldığı verileri dönüştürür aynı tabloda tablodur. Örneğin:
    INSERT T1 … SELECT T1
  • Diğer tablolarda bu bir INSERT SELECT deyimi başvuru. Bu geçici tablo içerir.

    NotFROM yan tümcesinde başvurulan tablolar veya bir alt sorgu veya birleştirme koşulu başvurulan tablolar.
Deyimi çalıştırdığınızda, aşağıdaki hata iletisini alırsınız:

<a1>Ileti</a1> 2627, Düzey 14, durum 1
' PrimaryKey ' PRIMARY KEY kısıtlaması ihlali. Yinelenen anahtar ' TableName ' nesne eklenemiyor.

Yürütme planı incelerseniz, JOIN işleci ve Dinleyicilerle biriktirme işletmen paralel olarak çalıştır bulun. JOIN işleci altında bu Dinleyicilerle biriktirme işleçtir. Ayrıca deyiminde alan iç birleşim tablosu tablodur.

Not Bu sorun, UPDATE SELECT deyimi veya DELETE SELECT deyimi çalıştırdığınızda da oluşur.

Neden

Bu sorun biriktirme bir hata nedeniyle Dinleyicilerle biriktirme işlecin bulunduğu biriktirme, beklenenden daha fazla satır oluşturur oluşur. Bu davranış, yinelenen bir anahtar sorunu neden olur.

Çözüm

Toplu güncelleştirme bilgileri

Bu sorunla ilgili düzeltme, önce SQL Server 2008 Service Pack 1 için toplu güncelleştirme 3'de yayımlanmıştır. Bu toplu güncelleştirme paketi hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
971491SQL Server 2008 Service Pack 1 için toplu güncelleştirme paketine 3
Not Yap?lar birikimli olduğu için her yeni düzeltme yayımlanan tüm düzeltmeleri içerir ve sürüm önceki SQL Server 2008'in içerdiği tüm güvenlik düzeltmelerini düzeltin. Microsoft, bu düzeltmeyi içeren en son düzeltme sürümü uygulama düşündüğünüz önerir. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
970365SQL Server 2008, SQL Server 2008 Service Pack 1'de yayımlandıktan sonra yayımlanan oluşturur
Microsoft SQL Server 2008'in, düzeltmeleri belirli SQL Server hizmet paketleri için oluşturulur. SQL Server 2008 Service Pack 1 yüklemesi için bir SQL Server 2008 Service Pack 1 düzeltme uygulamanız gerekir. Varsayılan olarak, sonraki SQL Server hizmet paketi ile bir SQL Server hizmet paketinde sağlanan herhangi bir düzeltme bulunmaktadır.

Düzeltme bilgileri

Desteklenen bir düzeltme Microsoft'tan edinilebilir. Ancak, düzeltmenin yalnızca bu makalede anlatılan sorunu gidermesi amaçlanmıştır. Düzeltmeyi yalnızca bu sorunla karşılaşmış olan sistemlere uygulayın. Bu düzeltmeye ek sınama uygulanabilir. Bu nedenle, bu sorundan ciddi bir şekilde etkilenmiyorsanız, bu düzeltmeyi içeren bir sonraki SQL Server 2008 hizmet paketini beklemenizi öneririz.

Bu sorunu hemen çözmek için, düzeltmeyi edinmek üzere Microsoft Müşteri Destek Hizmetleri'ne başvurun. Microsoft Müşteri Destek Hizmetleri'nin telefon numaralarının tam listesi ve destek ücretleriyle ilgili bilgi için, aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/contactus/?ws=support
Not Özel durumlarda, Microsoft Destek Uzmanı özel bir güncelleştirmenin sorununuzu çözümleyeceğini belirlerse, destek aramaları için normalde uygulanan ücretler iptal edilebilir. Ek destek sorularına ve söz konusu güncelleştirme için geçerli olmayan sorunlara normal destek ücretleri uygulanır.

ÖNKOŞULLAR

Bu düzeltmeyi uygulamak için <a0></a0>, SQL Server 2008 Service Pack 1 (SP1) çalıştıran bir bilgisayar olması gerekir.

Yeniden başlatma bilgileri

Bu düzeltmeyi uyguladıktan sonra bilgisayarı yeniden başlatmanız gerekmez.

Kayıt defteri Bilgileri

Kayıt defterini değiştirmeniz gerekmez.

Düzeltme Dosyası Bilgileri

Bu düzeltme, yalnızca bu makalede listelenen sorunları düzeltmek için gerekli olan dosyaları içerir. Bu düzeltme, bir ürünü en son sürüme tam olarak güncelleştirmek için gerekli olan dosyaları içermeyebilir.

Bu düzeltmenin İngilizce sürümü, aşağıdaki tabloda listelenen dosya özniteliklerine (veya daha yeni dosya özniteliklerine) sahiptir. Bu dosyaların tarihleri ve saatleri Koordinatlı Evrensel Saat'e (UTC) göre listelenir. Dosya bilgilerini görüntülediğinizde yerel saate dönüştürülür. UTC ve yerel saat arasındaki farkı bulmak için <a0></a0>, Denetim Masası'ndaki tarih ve saat öğesinde saat dilimi sekmesini kullanın.
Tüm desteklenen x 86 tabanlı sürümleri SQL Server 2008 Database Engine
Bu tabloyu kapaBu tabloyu aç
Dosya AdıDosya SürümüDosya BoyutuTARİHSAATPlatform
Sqlaccess.dll2007.100.2712.0405,35213 May 200917: 53X86
Keyfile.dll2007.100.2712.013,65613 May 200915: 37X86
Sqlservr.exe2007.100.2712.042,729,32013 May 200917: 56X86
Tüm desteklenen x 86 tabanlı sürümleri SQL Server Çözümleme Hizmetleri 2008
Bu tabloyu kapaBu tabloyu aç
Dosya AdıDosya SürümüDosya BoyutuTARİHSAATPlatform
Msmdlocal.dll10.0.2712.023,461,72013 May 200916: 08X86
Msmdsrv.exe10.0.2712.021,955,41613 May 200916: 09X86
Keyfile.dll2007.100.2712.013,65613 May 200915: 37X86
Msmdpump.dll10.0.2712.06,180,69613 May 200916: 08X86
Msmdspdm.dll10.0.2712.0178,00813 May 200916: 08X86
Msmgdsrv.dll10.0.2712.08,558,93613 May 200916: 09X86
Msolap100.dll10.0.2712.06,532,95213 May 200916: 09X86
Tüm desteklenen x 64 tabanlı sürümleri SQL Server 2008 Database Engine
Bu tabloyu kapaBu tabloyu aç
Dosya AdıDosya SürümüDosya BoyutuTARİHSAATPlatform
Sqlaccess.dll2007.100.2712.0412,00814-May-200901: 15X86
Keyfile.dll2007.100.2712.014,18413 May 200923: 55X64
Sqlservr.exe2007.100.2712.057,873,25614-May-200901: 17X64
Tüm desteklenen x 64 tabanlı sürümleri SQL Server Çözümleme Hizmetleri 2008
Bu tabloyu kapaBu tabloyu aç
Dosya AdıDosya SürümüDosya BoyutuTARİHSAATPlatform
Msmdlocal.dll10.0.2712.023,461,72013 May 200916: 08X86
Msmdlocal.dll10.0.2712.044,436,82414-May-200900: 10X64
Msmdsrv.exe10.0.2712.043,713,36814-May-200900: 10X64
Keyfile.dll2007.100.2712.014,18413 May 200923: 55X64
Msmdpump.dll10.0.2712.07,430,48814-May-200900: 10X64
Msmdspdm.dll10.0.2712.0178,02414-May-200900: 10X86
Msmgdsrv.dll10.0.2712.08,558,93613 May 200916: 09X86
Msmgdsrv.dll10.0.2712.012,332,37614-May-200900: 11X64
Msolap100.dll10.0.2712.06,532,95213 May 200916: 09X86
Msolap100.dll10.0.2712.08,153,94414-May-200900: 11X64
Tüm desteklenen ıtanium tabanlı sürümleri SQL Server 2008 için Veritabanı Altyapısı'nın
Bu tabloyu kapaBu tabloyu aç
Dosya AdıDosya SürümüDosya BoyutuTARİHSAATPlatform
Sqlaccess.dll2007.100.2712.0398,69613 May 200917: 01X86
Keyfile.dll2007.100.2712.019,30413 May 200915: 26IA-64
Sqlservr.exe2007.100.2712.0111,042,40813 May 200917: 08IA-64
Tüm desteklenen ıtanium tabanlı sürümleri, SQL Server Çözümleme Hizmetleri 2008
Bu tabloyu kapaBu tabloyu aç
Dosya AdıDosya SürümüDosya BoyutuTARİHSAATPlatform
Msmdlocal.dll10.0.2712.023,461,72013 May 200916: 08X86
Msmdlocal.dll10.0.2712.057,508,18413 May 200915: 44IA-64
Msmdsrv.exe10.0.2712.058,860,88813 May 200915: 46IA-64
Keyfile.dll2007.100.2712.019,30413 May 200915: 26IA-64
Msmdpump.dll10.0.2712.08,943,44813 May 200915: 45IA-64
Msmdspdm.dll10.0.2712.0178,00813 May 200915: 45X86
Msmgdsrv.dll10.0.2712.015,485,80013 May 200915: 47IA-64
Msmgdsrv.dll10.0.2712.08,558,93613 May 200916: 09X86
Msolap100.dll10.0.2712.010,065,24013 May 200915: 47IA-64
Msolap100.dll10.0.2712.06,532,95213 May 200916: 09X86

Pratik Çözüm

Bu soruna geçici bir çözüm bulmak için <a0></a0>, deyim veya sunucu düzeyinde 1 MAXDOP sorgu ipucu veya MAXDOP seçeneğini ayarlayın.

Not Sunucu düzeyinde MAXDOP seçeneği, sunucuda çalıştırılan sorguların performansını etkiler.

Durum

Microsoft, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bu sorunun olduğunu onaylamıştır.

Referanslar

SQL Server için artımlı hizmet modeli hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
935897SQL Server ekibinden bildirilen sorunlar için düzeltmeler ulaştırmak için artımlı bir hizmet modeli kullanılabilir


SQL Server güncelleştirmelerinin adlandırma şeması hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
822499Microsoft SQL Server yazılım güncelleştirme paketlerinin yeni adlandırma şeması


Yazılım güncelleştirme terminolojisi 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:
824684Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması

Özellikler

Makale numarası: 970507 - Last Review: 24 Temmuz 2009 Cuma - Gözden geçirme: 2.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Workgroup
Anahtar Kelimeler: 
kbmt kbsurveynew kbfix kbqfe kbexpertiseadvanced kbhotfixserver KB970507 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:970507

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