- ค่าเริ่มต้นในที่นี้เป็น Thai_CI_AS = Thai Case Insensitive Accent Sensitive
ปัญหา
- ถ้าเราเขียนโปรแกรมเชื่อมต่อ database เรื่องนี้เป็นสิ่งหนึ่งที่เราต้องรับรู้เรื่อง database collation
- ไปเจอ case ที่ sql query ต้องใส่ชื่อ table หรือ column ตัวใหญ่ ตัวเล็กแป๊ะๆ ใส่ไม่ถูกเป็นอัน Failed อย่างเดียว ซึ่ง database ก้อนนี้ต้องมีอะไรที่แปลกแน่ๆ เพราะ C# กับ SQL Server มานาน พิมพ์ใหญ่หรือเล็กจะถูกมองเป็นตัวเดียวกัน อยู่แล้ว แสดงว่า ก้อนนี้ต้องมีการตั้งค่า ที่ไม่ใช่ default แน่ๆ
- แนะนำให้ใช้ Thai_CI_AI = Thai Case Insensitive Accent Insensitive ไปเลย หรือจะใช้ค่าเริ่มต้นก็ได้เช่นกัน คือค่าดังภาพด้านบน เราก็จะหมดปัญหาเรื่อง SQL Query command table or column Case Sensitive
- เราสามารถกำหนดหรือเปลี่ยนค่า collation ได้โดยคลิกขวาที่ database เลือก properties
- Select a page เลือกเมนู Options เราจะเห็นหัวข้อ Collation: ที่บรรทัดแรก ปรับได้ตามสบาย
อ้างอิงจาก http://mssqlbase.blogspot.com
ความแตกต่างของ Database Collation
Thai_CI_AI คือ Language ภาษาไทย
CI = Case Insensitive
AI = Accent Insensitive
ต่างกับ Thai_CI_AS คือ
AS = Accent Sensitive
แนะนำใช้ Thai_CI_AI เพราะ Thai_CI_AS จะมีปัญหาเกี่ยวกับภาษไทยเรื่องของตัวการันต์
เช่นหากเราเขียน QUERY
SELECT * FROM customer WHERE Name LIKE 'พิมพ%'
หาก Collation เป็น Thai_CI_AS คนที่ชื่อ พิมพ์ใจ จะไม่ออกมาตามที่ควรจะเป็นครับ
นอกจากนั้นแล้ว Column ใน Table ก็มี Collation ของตัวเองอีกด้วย
ดังนั้นตอน Install Server หรือ Create Database ควรต้องระวังเรื่องนี้ด้วยครับ
อ้างอิง
No comments:
Post a Comment