Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tại sao tôi không thể đặt một ràng buộc đối với nvarchar (max)?

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ó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL - Làm cách nào để chỉ lấy các số sau số thập phân?

  2. Ký tự lạ trong cơ sở dữ liệu SQL

  3. Làm thế nào để thực hiện ghi nhật ký và báo cáo lỗi trong các thủ tục được lưu trữ trong SQL?

  4. Làm cách nào để giữ lại các thẻ CDATA khi lưu trữ các kết quả truy vấn trong một biến Xml?

  5. Ngày tạo trong SQL Server 2008