สวัสดีครับ วันนี้ผมจะขอนำเสนอความแตกต่างระหว่างชนิดข้อมูล varchar(n|max) กับ nvarchar(n|max) ใน SQL Server นะครับ
varchar(n) (varying char หรือ varying charactor) - เป็นการเก็บข้อมูลแบบ variable-length ซึ่่งจะมีความสามารถในการยึดหยุ่นเมื่อมีการเก็บข้อมูลไม่ถึงขนาดที่ได้ระบุไว้ เช่น varchar(10) แต่บันทึกบน row นั้นแค่ 5 อักษร ดังนั้นขนาดบน row นั้นก็จะเก็บแค่ 5 ตัวอักษร จริงๆ ขนาดสูงสุดของข้อมูลชนิดนี้คือ 8000 ส่วน varchar(max) จะสามารถเก็บข้อมูลที่เป็นตัวอักษรได้ถึง 2^31-1 bytes
nvarchar(n|max) - (national varing char หรือ national varing charactor) - เป็นการเก็บข้อมูลแบบเหมือนกับ varchar(n) ต่างตรงที่มันจะใช้เนื่้อที่เก็บเป็น 2 byte ต่อ 1 ตัวอักษร ดังนั้นทำให้เก็บข้อมูลได้จริงๆ แค่ 4000 เพราะว่ามันจะใช้เนืิ้อที่เก็บจริงๆ 8000 ซึ่งเท่ากับ varchar(n) นะครับ ส่วน nvarchar(max) จะสามารถเก็บข้อมูลที่เป็นตัวอักษรได้ถึง 2^31-1 bytes ซึ่งมันจะเก็บข้อมูลได้จริงๆเพียงครึ่งเดียวของ 2^-31-1 นะครับ
ยังไงก็ลองทดสอบกันนะครับ
ถ้าไม่ได้อย่างดีพอก็มาบอกกันบ้างนะครับ