Oprava: Chybová zpráva při spuštění příkazu INSERT SELECT tabulku SQL Server 2008: "porušení omezení PRIMARY KEY '<primarykey>. Nelze vložit duplicitní klíč v objektu '<tablename>"

Překlady článku Překlady článku
ID článku: 970507 - Produkty, které se vztahují k tomuto článku.
Společnost Microsoft distribuuje opravy Microsoft SQL Server 2008 jako jeden soubor ke stažení. Protože jsou kumulativní opravy, každé nové vydání obsahuje všechny opravy hotfix a opravte všechny opravy zabezpečení, které byly součástí předchozí SQL Server 2008 vydání.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Předpokládejme následující situaci:
  • Máte nainstalovanou v počítači s více procesory 2008 Microsoft SQL Server.
  • Máte příkazu INSERT SELECT tabulku obsahující primární klíč.

    Poznámka: V příkazu INSERT SELECT je stejné tabulky výstupem data tabulky, které přijímá data. Například:
    INSERT T1 … SELECT T1
  • Odkaz ostatních tabulek v tomto příkazu INSERT SELECT. Tyto odkazy zahrnují dočasné tabulky.

    Poznámka: Odkazované tabulky v klauzuli FROM nebo v podmínce spojení nebo poddotaz odkazované tabulky.
Při spuštění příkazu, zobrazí se následující chybová zpráva:

Msg 2627, úroveň 14 stav 1
Narušení omezení PRIMARY KEY ' PrimaryKey. Nelze vložit duplicitní klíč v objektu ' TableName.

Prozkoumejte plán spuštění zjistíte, že operátor JOIN a operátor Spool Eager spustit paralelně. Tento operátor Spool Eager je operátor JOIN. Navíc tabulky, které přijímá data v příkazu je vnitřní tabulka spojení.

Poznámka: K tomuto problému dochází také při spuštění příkazu DELETE SELECT nebo UPDATE SELECT.

Příčina

K tomuto problému dochází z důvodu chyby v zařazovací frontě pro operátor Spool Eager kde fronty generuje více řádků, než bylo očekáváno. Duplicitní klíče problém způsobuje toto chování.

Řešení

Informace o kumulativní aktualizaci

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizaci 3 pro SQL Server 2008 Service Pack 1. Další informace o tomto balíčku kumulativní aktualizace klepněte na následující číslo článku databáze Microsoft Knowledge Base:
971491Balíček kumulativní aktualizace 3 pro SQL Server 2008 Service Pack 1
Poznámka: Protože jsou kumulativní sestavení, každé nové verzi oprava obsahuje všechny opravy hotfix a opravte všechny opravy zabezpečení, které byly součástí předchozí SQL Server 2008 vydání. Společnost Microsoft doporučuje zvážit instalaci nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace naleznete následujícím článku znalostní databáze Microsoft Knowledge Base:
970365Sestaví SQL Server 2008, které byly vydány po vydání SQL Server 2008 Service Pack 1
Microsoft SQL Server 2008 opravy hotfix jsou vytvořeny pro konkrétní aktualizace service Pack pro SQL Server. K instalaci aplikace SQL Server 2008 Service Pack 1, je třeba použít opravu hotfix SQL Server 2008 Service Pack 1. Ve výchozím opravy hotfix, která je poskytována v aktualizace service pack pro SQL Server součástí příští aktualizace service pack pro SQL Server.

Informace o opravě hotfix

Společnost Microsoft nyní nabízí podporovanou opravu hotfix. Ta je však určena pouze k odstranění problému popsaného v tomto článku. Tuto opravu použijte pouze u systémů, ve kterých dochází k popsanému problému. Tato oprava hotfix může být dále testována. Proto pokud není použití tento problém, doporučujeme počkat na další aktualizaci service pack pro SQL Server 2008, který obsahuje tuto opravu hotfix.

Potřebujete-li odstranit tento problém okamžitě, obraťte se na technickou podporu společnosti Microsoft, kde můžete tuto opravu hotfix získat. Úplný seznam telefonních čísel služeb podpory zákazníků společnosti a informace o cenách podpory naleznete na následujícím webu:
http://support.microsoft.com/contactus/?ws=support
Poznámka: Poplatky, které je třeba obvykle zaplatit za telefonní hovory, mohou být stornovány, jestliže pracovník technické podpory společnosti Microsoft zjistí, že oznámený problém lze vyřešit konkrétní aktualizací. Další dotazy a žádosti o odbornou pomoc, které se netýkají této zvláštní opravy, podléhají běžným sazbám za poskytnutí odborné pomoci.

Požadavky

Chcete-li použít tuto opravu hotfix, musí mít počítače se systémem SQL Server 2008 Service Pack 1 (SP1).

Informace o restartování

Po instalaci této opravy hotfix není třeba počítač restartovat.

Informace o registru

Nemáte změna registru.

Informace o souboru opravy hotfix

Tato oprava hotfix obsahuje pouze soubory, které jsou nutné k opravě problémů uvedených v tomto článku. Oprava hotfix nemusí obsahovat všechny soubory nutné k plné aktualizaci produktu na nejnovější verzi.

Anglická verze této opravy hotfix má následující (nebo pozdější) atributy souborů. Data a časy jednotlivých souborů jsou uvedeny ve formátu UTC (Coordinated Universal Time). Pokud zobrazíte informace o souboru, bude převedena na místní čas. Rozdíl mezi místním ČASEM a najít, použijte kartu časové pásmo v položce datum a čas v ovládacím.
Pro všechny podporované verze 86 databázového stroje SQL Server 2008 x
Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
Sqlaccess.dll2007.100.2712.0405,35213 Květen 200917: 53X86
Keyfile.dll2007.100.2712.013,65613 Květen 200915: 37X86
Sqlservr.exe2007.100.2712.042,729,32013 Květen 200917: 56X86
Pro všechny podporované verze SQL Server 2008 Analysis Services 86 x
Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
Msmdlocal.dll10.0.2712.023,461,72013 Květen 200916: 08X86
Msmdsrv.exe10.0.2712.021,955,41613 Květen 200916: 09X86
Keyfile.dll2007.100.2712.013,65613 Květen 200915: 37X86
Msmdpump.dll10.0.2712.06,180,69613 Květen 200916: 08X86
Msmdspdm.dll10.0.2712.0178,00813 Květen 200916: 08X86
Msmgdsrv.dll10.0.2712.08,558,93613 Květen 200916: 09X86
Msolap100.dll10.0.2712.06,532,95213 Květen 200916: 09X86
Pro všechny podporované verze databázového stroje SQL Server 2008 64 x
Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
Sqlaccess.dll2007.100.2712.0412,00814 Květen 200901: 15X86
Keyfile.dll2007.100.2712.014,18413 Květen 200923: 55X64
Sqlservr.exe2007.100.2712.057,873,25614 Květen 200901: 17X64
Pro všechny podporované verze SQL Server 2008 Analysis Services 64 x
Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
Msmdlocal.dll10.0.2712.023,461,72013 Květen 200916: 08X86
Msmdlocal.dll10.0.2712.044,436,82414 Květen 200900: 10X64
Msmdsrv.exe10.0.2712.043,713,36814 Květen 200900: 10X64
Keyfile.dll2007.100.2712.014,18413 Květen 200923: 55X64
Msmdpump.dll10.0.2712.07,430,48814 Květen 200900: 10X64
Msmdspdm.dll10.0.2712.0178,02414 Květen 200900: 10X86
Msmgdsrv.dll10.0.2712.08,558,93613 Květen 200916: 09X86
Msmgdsrv.dll10.0.2712.012,332,37614 Květen 200900: 11X64
Msolap100.dll10.0.2712.06,532,95213 Květen 200916: 09X86
Msolap100.dll10.0.2712.08,153,94414 Květen 200900: 11X64
Pro všechny podporované verze databázového stroje SQL Server 2008 S procesorem Itanium
Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
Sqlaccess.dll2007.100.2712.0398,69613 Květen 200917: 01X86
Keyfile.dll2007.100.2712.019,30413 Květen 200915: 26IA-64
Sqlservr.exe2007.100.2712.0111,042,40813 Květen 200917: 08IA-64
Pro všechny podporované verze Itanium serveru SQL Server 2008 Analysis Services
Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
Msmdlocal.dll10.0.2712.023,461,72013 Květen 200916: 08X86
Msmdlocal.dll10.0.2712.057,508,18413 Květen 200915: 44IA-64
Msmdsrv.exe10.0.2712.058,860,88813 Květen 200915: 46IA-64
Keyfile.dll2007.100.2712.019,30413 Květen 200915: 26IA-64
Msmdpump.dll10.0.2712.08,943,44813 Květen 200915: 45IA-64
Msmdspdm.dll10.0.2712.0178,00813 Květen 200915: 45X86
Msmgdsrv.dll10.0.2712.015,485,80013 Květen 200915: 47IA-64
Msmgdsrv.dll10.0.2712.08,558,93613 Květen 200916: 09X86
Msolap100.dll10.0.2712.010,065,24013 Květen 200915: 47IA-64
Msolap100.dll10.0.2712.06,532,95213 Květen 200916: 09X86

Jak potíže obejít

Tento problém vyřešit, nastavte na 1 na úrovni serveru či příkazu rada MAXDOP dotazu nebo možnost MAXDOP.

Poznámka: Možnost MAXDOP úrovni serveru ovlivňuje výkon všechny dotazy na serveru spustit.

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Odkazy

Další informace o modelu přírůstkové Servicing pro SQL Server klepněte na následující číslo článku databáze Microsoft Knowledge Base:
935897Přírůstkové Model Servicing je k dispozici z týmu SQL Server doručit opravy hotfix pro nahlášené potíže


Další informace o pojmenování schématu aktualizace SQL Server klepněte na následující číslo článku databáze Microsoft Knowledge Base:
822499Nové schéma přidělování názvů pro balíčky aktualizací softwaru Microsoft SQL Server


Další informace o terminologii používané v aktualizacích softwaru naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
824684Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft

Vlastnosti

ID článku: 970507 - Poslední aktualizace: 24. července 2009 - Revize: 2.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Workgroup
Klíčová slova: 
kbmt kbsurveynew kbfix kbqfe kbexpertiseadvanced kbhotfixserver KB970507 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:970507

Dejte nám zpětnou vazbu

 

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