لماذا النسخ المتماثل دمج تفشل في وضع الجدول LOCK_ESCALATION?

StackOverflow https://stackoverflow.com/questions/813403

سؤال

لدينا مشكلة مع النسخ المتماثل الدمج.الناشر يعمل SQL Server 2008 ، في حين أن لدينا اثنين من المشتركين تشغيل 2005.الناشر يحاول إرسال ALTER TABLE Foo SET (LOCK_ESCALATION) الأمر إلى المشتركين.أظن أني قرأت أن هذا الأمر هو جديد في SQL Server 2008 إذا كان الأمر كذلك, فمن المنطقي أن الأمر سوف تفشل على 2005 الخوادم.لدينا النسخ المتماثل دمج إعداد 2005 التوافق, ومع ذلك.

مخطط البرنامج النصي 'إذا object_id(ن'[dbo].[المستخدمين]') ليست فارغة exec('ALTER TABLE [dbo].[المستخدمين] مجموعة (LOCK_ESCALATION = الجدول) ')' لا يمكن نشر إلى المشترك.

أي الأفكار حول لماذا لدينا الناشر سيكون تحاول أن تفعل هذا ؟

تحرير: لدينا 2008 ملقم مستوى التوافق هو "Sql Server 2005 (90)"

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

المحلول

لها ميزة جديدة في sql server 2008 إذا لم يؤيد في عام 2005.اعتمادا على مدى تعقيد الإعداد الخاص بك قد ترغب في النظر في الحصول قاعدة البيانات الخاصة بك تشغيل في التوافق 90 (sql server 2005) للتأكد من أنك لا تضيف sql 2008 ميزات قاعدة البيانات الخاصة بك.لديهم مشكلة كبيرة مع تكرار مخطط البيانات من أي وقت مضى منذ أن جاء ذلك دائما متحفظة قليلا.أنا دائما في محاولة لجعل هذا التصرف الأحمق فقط إدارة البيانات إلى دعم دمج النظام مع 32 مشترك مع النسخ المتماثل دمج وكان كبير مخطط القضايا باستمرار عندما دفعت التغييرات المخطط.

وقال إذا كان يعمل في توثيق فإنه لا ينبغي أن يكون محاولة لدفع القفل الخاص بك تغيير.والتحقق من الاشتراكات هي علامة sql 2005 متوافق.من المرجح أنها لم تكن قد خلقت السيارات خريطة الإعداد من عام 2008 إلى عام 2005 في الطريقة التي فعلت من أجل أنواع البيانات (على سبيل المثال)

واحدة من SQL ديف الرجال كتبت على تأمين أنواع حين يعود

نصائح أخرى

يحدث هذا بسبب عدم توافق هذا الأمر مع sql server 2005 و aparently عندما أفعل مخطط تغيير في الجدول الذي هو تكرار يضع هذه التعليمات في التغييرات المخطط.

هناك طريقتان:إزالة وخلق مرة أخرى suscription, لا ينطبق عندما يكون في خادم الإنتاج.الطريقة الثانية هي الذهاب إلى sysmergeschemachange الجدول في قاعدة البيانات وحذف الصف الذي لديه شيء من هذا القبيل:

مخطط البرنامج النصي 'إذا object_id(ن'[dbo].[المستخدمين]') لا null exec('ALTER TABLE [dbo].[المستخدمين] مجموعة (LOCK_ESCALATION = الجدول) ')' لا يمكن نشر إلى المشترك.

آمل أن يساعد هذا.

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