วันพฤหัสบดีที่ 26 สิงหาคม พ.ศ. 2553

แก้ปัญหา เวลา join กัน ใน MSSQL แล้ว error "Cannot resolve collation conflict for equal to operation."

     บางคนอาจจะเคยเจอเหมือนที่ผมเจอวันนี้ คือ select ด้วยการ join กัน ใน MSSQL แล้ว ขึ้น error "Cannot resolve collation conflict for equal to operation." เพราะการ set collation ที่ต่างกันระหว่าง database, table หรือ field ทำให้ไม่สามารถใช้ operation โดยตรงได้

     ผมก็เลยเข้าไป Google หาข้อมูลดู ซึ่งการแก้ปัญหาที่ตรงจุดคือ แก้ collation ให้ตรงกันทั้ง 2 ฟากนั่นเอง แต่สำหรับผมแล้ว มันเป็นงานช้างไปในทันที แต่ก็ยังโชคดี ที่เจอ solution แบบง่ายๆ คือใช้ แบบนี้ครับ

SELECT ID


FROM ItemsTable

INNER JOIN AccountsTable

WHERE ItemsTable.Collation1Col COLLATE DATABASE_DEFAULT

= AccountsTable.Collation2Col COLLATE DATABASE_DEFAULT
 
     ง่ายๆแค่นี้เองครับ แต่ใช้ได้ผลจริงๆ งานนี้ขอขอบคุณเจ้าของบทความที่ไปเจอมาวันนี้ครับ http://blog.sqlauthority.com/2007/06/11/sql-server-cannot-resolve-collation-conflict-for-equal-to-operation/

ไม่มีความคิดเห็น:

แสดงความคิดเห็น