سؤال

وأنا أحاول القيام تحميل مجمع إلى DB الخادم SQL. الملف المصدر ديه التكرارات التي أريد إزالة، لذلك كنت اتمنى ان العملية سوف تلقائيا تحميل أول واحد، ثم تجاهل بقية. (لقد وضع قيد مفتاح فريد). المشكلة هي، لحظة تتم محاولة تحميل مكرر كل شيء فشل ويحصل على التراجع. هل هناك أي طريقة أستطيع أن أقول فقط SQL على الاستمرار؟

هل كانت مفيدة؟

المحلول

وحاول أن يجمع إدراج البيانات إلى الجدول المؤقت ثم SELECT DISTINCT كما اقترحmadcolor أو

INSERT INTO yourTable
SELECT * FROM #tempTable tt
WHERE NOT EXISTS (SELECT 1 FROM youTable yt WHERE yt.id = tt.id)

وأو حقل آخر في جملة WHERE.

نصائح أخرى

إذا كنت تفعل ذلك من خلال بعض الأدوات SQL مثل SQL زائد أو DBVis أو العلجوم، ثم لا أظن. إذا كنت تفعل هذا برمجيا في اللغة، ثم أنت بحاجة الى فرق تسد. تنفيذ يفترض خط التحديث عن طريق خط وسوف اصطياد كل استثناء تكون طويلة جدا عملية، وذلك بدلا يمكن أن تفعله عملية دفعة لأول مرة على كتلة SQL كله، وإذا فشلت، أن تفعل ذلك في النصف الأول، وإذا فشل ذلك، تفعل ذلك في النصف الأول من الشوط الأول. تكرار هذه الطريقة حتى يكون لديك كتلة أن ينجح. تجاهل كتلة والقيام بنفس الإجراء على بقية SQL. وأي شيء ينتهك القيد في نهاية المطاف بمثابة بيان SQL الوحيد الذي تعرف لتسجيل وتجاهل. وينبغي أن استيراد مع الكثير من معالجة معظم ما هو ممكن في حين لا يزال ضاربا عرض الحائط خطوط غير صالحة.

استخدم جهاز مباحث أمن الدولة لهذا الغرض. يمكن أن أقول لكم أنه لتخطي التكرارات. ولكن تأكد من أنها نسخ مكررة الحقيقية أولا. ما إذا كانت البيانات في بعض الأعمدة مختلفة، كيف يمكنك أن تعرف ما هو السجل الأفضل أن تبقي؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top