nvarchar(max)
thực sự là một kiểu dữ liệu khác với nvarchar(integer-length)
. Đặc điểm của nó giống với text
không dùng nữa loại dữ liệu.
Nếu nvarchar(max)
giá trị trở nên quá lớn, như text
, nó sẽ được lưu trữ bên ngoài hàng (một hàng được giới hạn ở mức tối đa 8000 byte) và một con trỏ tới nó được lưu trữ trong chính hàng đó. Bạn không thể lập chỉ mục một cách hiệu quả một trường lớn như vậy và thực tế là dữ liệu có thể được lưu trữ ở một nơi khác làm phức tạp thêm việc tìm kiếm và quét chỉ mục.
Một ràng buộc duy nhất yêu cầu một chỉ mục phải được thực thi và do đó, các nhà thiết kế SQL Server đã quyết định không cho phép tạo ra một ràng buộc duy nhất đối với nó.