أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

FIX: غير صحيح سلوك LIKE [-] عند استخدام فهرس

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

اضغط هنا لرابط المقالة باللغة الانجليزية290918
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
BUG #: 352098 (SHILOH_bugs)
الأعراض
عند استخدام بحث بدل على عمود يحتوي على القيمة [-] ، قد يتم تخطي صفوف مطابقة إذا تم استخدام فهرس.
الحل
لحل هذه المشكلة، يجب الحصول على أحدث حزمة خدمة لـ SQL Server 2000. للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
290211INF: كيفية الحصول على أحدث حزمة خدمة لبرنامج SQL Server 2000
الحل البديل
بناء الجملة الصحيح يجب أن تتضمن جملة ESCAPE للبحث عن الأحرف التي يمكن أن تشير إلى عمليات البحث حرف بدل:
select * from dashes where no_key like 'a[~-]a%' ESCAPE '~'select * from dashes where primary_key like 'a[~-]a%' ESCAPE '~'				
تصريح
أقرت Microsoft أن هذه مشكلة في SQL Server 2000. تم تصحيح هذه المشكلة لأول مرة في SQL Server 2000 Service Pack 1.
معلومات أخرى
-- Incorrect result set is produced by a "SELECT" which uses the "LIKE" -- clause where one argument is a primary key column and the other is a-- string literal with "[-]" in the middle of it.use northwindset nocount offif ( object_id('dashes') is not NULL ) drop table dashescreate table dashes ( primary_key varchar(20) primary key, no_key varchar(20) )insert dashes values ( 'a-a-key', 'a-a-value' )print 'next two statements correctly return one record each'select * from dashes where no_key like 'a-a%'select * from dashes where primary_key like 'a-a%'print 'for the primary key query, it incorrectly returns no rows'select * from dashes where no_key like 'a[-]a%'select * from dashes where primary_key like 'a[-]a%'				
next two statements correctly return one record eachprimary_key          no_key               -------------------- -------------------- a-a-key              a-a-value(1 row(s) affected)primary_key          no_key               -------------------- -------------------- a-a-key              a-a-value(1 row(s) affected)for the primary key query, it incorrectly returns no rowsprimary_key          no_key               -------------------- -------------------- a-a-key              a-a-value(1 row(s) affected)primary_key          no_key               -------------------- -------------------- (0 row(s) affected)				
شرطة واصلة البدل الإخراج النتيجة البيانات الخطأ غير صحيحة

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 290918 - آخر مراجعة: 01/16/2015 21:50:14 - المراجعة: 3.2

Microsoft SQL Server 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbbug kbfix kbsqlserv2000sp1fix KB290918 KbMtar
تعليقات