Düzeltme: İş adım başarısız ilk varsa toplu işlem karşılaştığı bir hata 3604 hata INSERT

Makale çevirileri Makale çevirileri
Makale numarası: 295032 - Bu makalenin geçerli olduğu ürünleri görün.
# HATA: 351328 (shiloh_bugs)
# HATA: 100729 (SQLBUG_70)
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Bir iş IGNORE_DUP_KEY yan tümcesi ile birlikte benzersiz bir dizin olan bir tabloda tek bir INSERT deyimi içerir ve dizini benzersizlik özelliğini INSERT ihlal, karşılık gelen satır tabloda eklenmez. Işlem adımı başarısız ve iş adım geçmişini'nda aşağıdaki iletiyi görürsünüz:
Yinelenen anahtarı yok sayıldı. [sqlstate 23000] (Ileti 3604). Adım başarısız oldu.
Tablo bir UNIQUE INDEX IGNORE_DUP_KEY sahip olduğundan, INSERT deyimi yoksayıldı ve adım başarılı olması.

Çözüm

Bu sorunu gidermek için <a0></a0>, SQL Server 2000 için en son hizmet paketini edinin. Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
290211BILGI: en son SQL Server 2000 hizmet paketi nasıl elde edilir

Pratik Çözüm

Her zaman başarıyla (SELECT 1 gibi) çalışır bir "kukla" SELECT deyimi koyarsanız, yalnızca önce adım 3604 hatasıyla başarısız olan bir INSERT deyimi başarılı olur. Bu "Daha fazla bilgi" bölümünde gösterilmektedir.

Durum

Microsoft, bu makalenin başında listelenen Microsoft ürünlerinde bir sorun olduğunu onaylamıştır. Bu sorun ilk olarak SQL Server 2000 Service Pack 1'de giderilmiştir.

Daha fazla bilgi

Davranışı yeniden oluşturma için gereken adımları

  1. Pubs veritabanındaki bir tablonun test ' ı oluşturma ve bir satır eklemek için aşağıdaki komut dosyası yürütme:
    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. Tablo test bir satır eklemek için pubs veritabanındaki bir T-SQL oluşturmak:
    INSERT INTO pubs..test values(1)
    					
  3. Iş çalıştırın. Işi başarısız olur ve "Belirtiler" bölümünde listelenen hata iş adım geçmişini gösterir.
  4. Not INSERT başarılı bir ifadenin ekledik, bir 3604 hatasıyla karşılaşır:
    INSERT INTO pubs..test values(1)
    INSERT INTO pubs..test values(2)
    					
    adım yeniden aşağıdaki hata ile başarısız olur:
    Yinelenen anahtarı yok sayıldı. [sqlstate 23000] (Ileti 3604) [SQLSTATE HY007] ilgili ifade hazır değil (hata 0). Adım başarısız oldu.
  5. Ekledik, ancak olan başarılı bir deyimi önce 3604 hatası ile başarısız olan bir INSERT oluşur:
    insert pubs..t1 values(3)
    insert pubs..t1 values(1)
    					
    adım başarılı ve biz, aşağıdaki iletiyi görürsünüz:
    Yinelenen anahtarı yok sayıldı. [sqlstate 23000] (Ileti 3604). Adım başarılı oldu.

Özellikler

Makale numarası: 295032 - Last Review: 28 Ekim 2003 Salı - Gözden geçirme: 3.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Anahtar Kelimeler: 
kbmt kbbug kbfix kbsqlserv2000sp1fix KB295032 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:295032

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