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

Sự khác biệt giữa các kiểu chuỗi khác nhau trong SQL Server?

textntext không được dùng nữa, vì vậy hãy bỏ qua chúng trong giây lát. Đối với những gì còn lại, có 3 kích thước:

  • Unicode (UCS-2) so với non-unicode:N phía trước tên biểu thị Unicode
  • Độ dài cố định so với độ dài thay đổi:var biểu thị biến, nếu không thì cố định
  • Trong hàng so với BLOB:(max) vì độ dài biểu thị BLOB, ngược lại là giá trị trong hàng

Vì vậy, với điều này, bạn có thể đọc ý nghĩa của bất kỳ loại nào:

  • CHAR(10) :là độ dài cố định trong hàng không phải Unicode có kích thước 10
  • NVARCHAR(256) :là một Unicode có độ dài thay đổi trong hàng có kích thước lên đến 256
  • VARCHAR(MAX) :là độ dài thay đổi BLOB không phải Unicode

Các loại text không dùng nữa và ntext tương ứng với các loại mới varchar(max)nvarchar(max) tương ứng.

Khi bạn đi đến chi tiết, ý nghĩa của in-row so với BLOB làm mờ các chiều dài nhỏ vì động cơ có thể tối ưu hóa bộ nhớ và kéo BLOB trong hàng hoặc đẩy một giá trị trong hàng vào đơn vị phân bổ 'BLOB nhỏ', nhưng đây chỉ là chi tiết triển khai. Xem Tổ chức Bảng và Chỉ mục .

Từ quan điểm lập trình, tất cả các loại:CHAR , VARCHAR , NCHAR , NVARCHAR , VARCHAR(MAX)NVARCHAR(MAX) , hỗ trợ API chuỗi thống nhất: Hàm chuỗi . Loại TEXT cũ, không được dùng nữa và NTEXT không không hỗ trợ API này, họ có một API TEXT riêng biệt, phụ thuộc, để thao tác. Bạn không nên sử dụng các loại không dùng nữa.

Các loại BLOB hỗ trợ cập nhật tại chỗ hiệu quả bằng cách sử dụng cột UPDATE table SET column.WRITE(@value, @offset) cú pháp.

Sự khác biệt giữa các loại độ dài cố định và độ dài thay đổi sẽ biến mất khi nén hàng trên bảng. Với tính năng nén hàng được bật, các loại độ dài cố định và độ dài thay đổi được lưu trữ ở cùng một định dạng và dấu cách ở cuối không được lưu trữ trên đĩa, hãy xem Triển khai Nén hàng . Lưu ý rằng nén trang có nghĩa là nén hàng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách hàm TRANSLATE () hoạt động trong SQL Server (T-SQL)

  2. Tổng hợp có thể không xuất hiện trong danh sách tập hợp của một tuyên bố CẬP NHẬT. Nếu cập nhật với Tên cột

  3. Đổi tên một số Bảng thành Tên Bảng + DDMMYYYY

  4. Cách định dạng giá trị phủ định bằng dấu ngoặc trong SQL Server (T-SQL)

  5. Nhận các tham số thủ tục được lưu trữ bằng C # hoặc SQL?