سؤال

مرحبًا، أواجه مشكلة يبدو أنها مرتبطة بالترتيب، لكنني لست متأكدًا.

أقوم بالتطوير مقابل نسخة احتياطية من قاعدة بيانات الإنتاج الخاصة بي.الاختلاف الوحيد في بيئات SQL Server 2005 (التي أعرفها الآن) هو أن المضيف المحلي الخاص بي يحتوي على "SQL_Latin1_جنرال_CP1_CS_AS" (حساس لحالة الأحرف) كالترتيب، وبيئة الإنتاج بها "SQL_Latin1_جنرال_CP1_CI_AS" (غير حساس لحالة الأحرف).

عندما أقوم بتنفيذ الإجراءات المخزنة محليا ، يتم رميها "يجب أن تعلن أخطاء المتغير العددي "@firstName"".

المتغير "@FirstName" لديه تم الإعلان عنها.

الآن، قاعدة البيانات نفسها هي "SQL_Latin1_جنرال_CP1_CI_AS" باعتبارها الترتيب، فلماذا لا تعمل الإجراءات المخزنة في سياق غير حساس لحالة الأحرف؟

لقد بحثت في هذا عبر الإنترنت، ويقولون بشكل أساسي أنه يجب علي إعادة بناء SQLserver الخاص بي.

ألا ينبغي لسياق قاعدة البيانات أن يتفوق على سياق الخادم في عملية الترتيب؟

راجع للشغل، فإن كل من master وtemdb حساسان لحالة الأحرف "SQL_Latin1_general_CP1_CS_AS".

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

المحلول

هذا ال سيء الوضع الذي ستكون فيه.أي شيء لا يمكنك التحكم فيه في الترتيب (على سبيل المثال.SELECT INTO جدول مؤقت) سوف ينقطع عندما تحاول القيام بأي شيء يتضمن varchars.سوف يتفوق الترتيب الافتراضي للخادم على أي شيء لا تقوم فيه بإجبار الترتيب بشكل صريح، والذي سيكون معظم إن لم يكن كل رمز الإجراء المخزن الموجود لديك.

الحل الطبيعي لهذه المشكلة هو أعد تثبيت مثيل SQL Server بالترتيب الصحيح.نعم انت حقا أفعل بحاجة للقيام بذلك.معرفتي بهذا الأمر غير مباشرة، لكنني أفهم (من شخص حصل على دعم فني لـ MS يشارك في هذه المشكلة) أنه من الممكن تقنيًا تغيير الترتيب الافتراضي على مثيل SQL Server ولكن العملية تقنية وعرضة للخطأ، مما يجعل يمكن أن يؤدي الخطأ إلى ترك الخادم في حالة غير قابلة للاستخدام.يبدو أن هذا الإجراء غير مدعوم رسميًا من قبل Microsoft والإجراء الموصى به هو إعادة تثبيت مثيل SQL Server.

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