Oprava: Se nezdaří úloha krok Pokud první INSERT z dávková úloha setká chybová zpráva 3604

Překlady článku Překlady článku
ID článku: 295032 - Produkty, které se vztahují k tomuto článku.
CHYBA Č: 351328 (SHILOH_BUGS)
CHYBA Č: 100729 (SQLBUG_70)
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Pokud úloha obsahuje jeden příkazu INSERT na tabulce, která má jedinečný index s klauzulí IGNORE_DUP_KEY a INSERT porušuje vlastnost jedinečnosti index, není odpovídající řádek v tabulce vložen. Krok úlohy selže a zobrazí následující zpráva kroku historie úlohy:
Duplicitní klíč byl ignorován. [SQLSTATE 23000 (Zpráva 3604). V kroku se nezdařilo.
Protože tabulka má UNIQUE INDEX s IGNORE_DUP_KEY, ignorována příkazu INSERT a v kroku by měla proběhnout úspěšně.

Řešení

Tento problém vyřešíte pomocí nejnovější aktualizace service pack pro SQL Server 2000. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
290211INF: Jak získat nejnovější aktualizaci Service Pack pro SQL Server 2000

Jak potíže obejít

Pokud umístíte "fiktivní" SELECT, který vždy spustí úspěšně (například SELECT 1) pouze před příkazu INSERT selže s chybou 3604 krok úspěšný. Tento postup je znázorněn v části "Další informace".

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny na začátku tohoto článku. Tento problém byl poprvé opraven v SQL Server 2000 Service Pack 1.

Další informace

Kroky pro reprodukci chování

  1. Vytvoření tabulky Testování v databázi pubs a spusťte následující skript vložit řádek:
    USE pubs
    CREATE TABLE test(i int)
    CREATE UNIQUE INDEX uniq_t1_i on test(i) with IGNORE_DUP_KEY
    INSERT INTO test VALUES(1)
    					
  2. Vytvořit úlohu T-SQL v databázi pubs chcete vložit řádek v tabulce test:
    INSERT INTO pubs..test values(1)
    					
  3. Spustit úlohu. Úloha selže a historie úlohy kroku zobrazuje chyby uvedené v části "Příznaky".
  4. Všimněte si, že pokud jsme přidat úspěšné příkaz po INSERT, který nalezne chyba 3604:
    INSERT INTO pubs..test values(1)
    INSERT INTO pubs..test values(2)
    					
    kroku znovu nezdaří s následující chybou:
    Duplicitní klíč byl ignorován. [SQLSTATE 23000 (Zpráva 3604) Přidružené příkaz není připraven [SQLSTATE HY007] (chyba 0). V kroku se nezdařilo.
  5. Však Pokud jsme přidat úspěšné příkaz, který obsahuje výsledky před INSERT selže s chybou 3604:
    insert pubs..t1 values(3)
    insert pubs..t1 values(1)
    					
    krok úspěšný a vidíme následující zpráva:
    Duplicitní klíč byl ignorován. [SQLSTATE 23000 (Zpráva 3604). V kroku proběhlo úspěšně.

Vlastnosti

ID článku: 295032 - Poslední aktualizace: 28. října 2003 - Revize: 3.2
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Klíčová slova: 
kbmt kbbug kbfix kbsqlserv2000sp1fix KB295032 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:295032

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