كيف يمكنني تحديد ترتيب قاعدة البيانات في SQL 2005؟
سؤال
كيف يمكنك تحديد ترتيب قاعدة البيانات في SQL 2005، على سبيل المثال، إذا كنت بحاجة إلى إجراء بحث/استبدال غير حساس لحالة الأحرف؟
المحلول 3
استخدم SQL التالي لتحديد ترتيب قاعدة البيانات:
SELECT DATABASEPROPERTYEX('{database name}', 'Collation') SQLCollation;
نصائح أخرى
تذكر أن الأعمدة الفردية يمكنها تجاوز ترتيب قاعدة البيانات:
SELECT TABLE_NAME, COLUMN_NAME, COLLATION_NAME
FROM INFORMATION_SCHEMA.COLUMNS
حدد قاعدة البيانات وقم بتشغيل الأمر التالي.
sp_helpsort
إذا كنت تريد إجراء بحث غير حساس لحالة الأحرف ولا يمكنك الاعتماد على ترتيب قاعدة البيانات، فيمكنك دائمًا طلب ذلك على وجه التحديد للاستعلام الذي يهمك.على سبيل المثال:
SELECT TOP 1 FName, *
FROM People
WHERE FName LIKE '%mich%' COLLATE Latin1_General_CI_AI
عادةً ما أواجه مشكلة معاكسة، حيث أريد حساسية حالة الأحرف ولكن لا أمتلكها في ترتيب قاعدة البيانات، لذلك أجد نفسي أستخدم ترتيب Latin1_general_BIN كثيرًا في استعلاماتي.إذا كنت لا تعرف بالفعل، يمكنك القيام بما يلي:
SELECT
FROM ::fn_helpcollations()
للحصول على قائمة بالمجموعات المتاحة وأوصاف الغرض منها.
لا تنتمي إلى StackOverflow