سؤال

التاريخ:لقد كان نشر تلك الليلة التي شملت تنفيذ السيناريو الذي يخلق الإجراء المخزن.لكن عند تشغيل البرنامج النصي خطأ حدث عن جمع من DB.

المشكلة:مع مساعدة من صديقنا جوجل تمكنت من معرفة أن المشكلة كنت أعاني من كان في بيئة حية db واحد ترتيب مؤقت DB ترتيب مختلف ، و كنت على خطأ عند محاولة إدراج متغير الجدول.

السؤال:ما هي أفضل طريقة للمضي قدما ، أو الخيارات المتاحة أمامي ؟

البيئة:sql 2000

شكرا مقدما.

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

المحلول

ولقد تم تشغيل في هذا واحد مع قواعد البيانات المؤقتة التي نستخدمها لاختبارات التكامل، فيما يتعلق بقواعد البيانات التطوير والإنتاج. ما قمنا به هو التأكد من أن كافة قواعد البيانات استخدام نفس الترتيب. في حالتك، ربما يجب عليك أن تكون قادرا على القيام بعملية بحث بسيطة / استبدال في ملف نصي وببساطة تغيير الترتيب لتلك المستخدمة في قاعدة البيانات الهدف.

وتحرير: تغيير في السيناريو سوف تحصل الأمام الآن. على المدى الطويل سوف تحتاج إلى التأكد من استخدام نفس الترتيب في جميع قواعد البيانات ذات الصلة.

نصائح أخرى

هناك بعض الحلول

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

     INSERT INTO dest_db..DEST_TABLE ( DEST_VARCHAR_COLUMN )
     SELECT TMP_VARCHAR_COLUMN COLLATE <dest_db_collate>
     FROM tmp_db..#TEMP_TABLE
    

والحل واضح هو إعادة تطوير قاعدة البيانات الخاصة بك بنفس الترتيب كما قاعدة بيانات الإنتاج.

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

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