Yontem güzelmiş, ellerine sağlık hocam. 300m kayıtlı ne verisi olduğunu merak ettim doğrusu. nceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..

Bunun için mevcut bir çzüm var: IGNORE_DUP_KEY. Bu seçeneği belirtmek için mevcut tablonun rebuild edilmesi gerektğinden 300M'lik tablona online olarak uygulamak sorun olabilir. Ancak yeni tablo oluştururken veya henüz pek kalabalık olmayan bir tabloda bu seçeneği gsterdiğim rnekteki gibi etkinleştirdiğinde mükerrer kayıtlar hataya sebep olmayıp grmezden gelinirler. rnek: http://sqlfiddle.com/#!18/bbcae/1 anlıyorum.

Selamlar, Tabloya insert etmeden nce tabloda daha nceden yaratılmış -aynı PK ya sahip- bir kayıt mevcutsa dublicate record hatası alırız. Bu durum çeşitli nedenlerle oluşabilir. Benim rneğimde tablonun PK'sı CURRENT DATE idi. Mevcut tabloya farklı uygulamalar tarafından t anında n tane kayıt insert edilirken aynı PK lı kayıtlar oluştu ve dublicate record'a neden oldu. Eğer INSERT işlemini SP ler ile yapıyorsanız 2 şekilde dublicate'yi engelleyebilirsiniz. 1- INSERT etmeden nce SELECT ile içerde byle bir kayıt olup olmadığına bakarak. (Burada Select ek bir maliyet oluşturdu. Select attığım tabloda 300M kayıt vardı uygulama timeout'a düştü ve kill oldu.) 2- INSERT işlemini handle ederek. ERROR_NUMBER = 2627 dublicate record hata kodudur. Duplicate recordda hata almak istemiyorum -başka bir tabloya gnderiyorum- bu nedenle sadece 2627 dışındaki hatalarda throw ettirdim. Bu sayede Select maliyeti nlenmiş oldu. BEGIN TRY Insert into T_Table Values END TRY BEGIN CATCH SELECT @error_number = ERROR_NUMBER IF @error_number!= 2627 BEGIN SET @errMsg = 'ERROR MESSAGE : ' + CAST(ERROR_MESSAGE AS VARCHAR(200)) + ' ERROR NUMBER : ' + CAST(ERROR_NUMBER AS VARCHAR(20)) + ' PROCEDURE NAME :' + CAST(ERROR_PROCEDURE AS VARCHAR(150)) + ' PROCEDURE LINE :' + CAST(ERROR_LINE AS VARCHAR(10)) RAISERROR( @errMsg,16,1); END END CATCH https://www.youtube.com/watch?v=WC3-71NKwPw

Yontem güzelmiş, ellerine sağlık hocam. 300m kayıtlı ne verisi olduğunu merak ettim doğrusu. Merhaba, Fikir olması açısından şyle: Sistemlerin beklediği gibi çalışıp çalışmadığını kontrol edilen uygulamalar var. Onlarca sistemi her dakka kontrol edip o an çalışıp çalışmadığını raporlamak için kullanılıyor. https://www.youtube.com/watch?v=WC3-71NKwPw

Bunun için mevcut bir çzüm var: IGNORE_DUP_KEY. Bu seçeneği belirtmek için mevcut tablonun rebuild edilmesi gerektğinden 300M'lik tablona online olarak uygulamak sorun olabilir. Ancak yeni tablo oluştururken veya henüz pek kalabalık olmayan bir tabloda bu seçeneği gsterdiğim rnekteki gibi etkinleştirdiğinde mükerrer kayıtlar hataya sebep olmayıp grmezden gelinirler. rnek: http://sqlfiddle.com/#!18/bbcae/1 Merhaba, Bu yntemi mevcut tabloya uygulamaak belirtitğin gibi ciddi sıkıntı olduğu için kullanamadım. Bilgi için teşekkürler. https://www.youtube.com/watch?v=WC3-71NKwPw

Bunun için mevcut bir çzüm var: IGNORE_DUP_KEY. Bu seçeneği belirtmek için mevcut tablonun rebuild edilmesi gerektğinden 300M'lik tablona online olarak uygulamak sorun olabilir. Ancak yeni tablo oluştururken veya henüz pek kalabalık olmayan bir tabloda bu seçeneği gsterdiğim rnekteki gibi etkinleştirdiğinde mükerrer kayıtlar hataya sebep olmayıp grmezden gelinirler. rnek: http://sqlfiddle.com/#!18/bbcae/1 +1 bunu demeye gelmiştim Bu Yüce Türk Milleti ne ihanetler grdü hepsinin üstesinden gelmeyi başararak tarihe nice zaferler yazdırdı. Bu Millet Kuva-yı milliye hareketini yeniden başlatır. Sivas Kongresini yeniden toplar, Ya İstiklal, Ya lüm diye haykırır ve gereğini yapar. Türk Milleti ihaneti ve hainleri hiç affetmez. Dileğimiz odur ki bu iş sandıkta bitsin, aksi halde "sürüye dalmayı gze alan Kurt, çobanın da, kpeğinde hesabını yapmaz."