Chắc chắn KHÔNG :
-
TEXT, NTEXT
:những loại đó không được dùng nữa kể từ SQL Server 2005 và không nên được sử dụng để phát triển mới. Sử dụngVARCHAR(MAX)
hoặcNVARCHAR(MAX)
thay vào đó -
IMAGE
,VARBINARY(MAX)
:IMAGE
không được dùng nữa giống nhưTEXT/NTEXT
và thực sự chẳng ích gì khi lưu trữ một chuỗi văn bản thành một cột nhị phân ....
Vì vậy, về cơ bản để lại VARCHAR(x)
hoặc NVARCHAR(x)
:VARCHAR
lưu trữ các chuỗi không phải Unicode (1 byte cho mỗi ký tự) và NVARCHAR
lưu trữ mọi thứ ở chế độ Unicode 2 byte cho mỗi ký tự. Vậy bạn có cần Unicode không? Bạn có khả năng có các ký tự Ả Rập, Do Thái, Trung Quốc hoặc các ký tự không phải Tây-Âu khác trong chuỗi ký tự của mình không? Sau đó, đi với NVARCHAR
(N)VARCHAR
cột có hai loại:bạn xác định độ dài tối đa dẫn đến 8000 byte trở xuống (VARCHAR
lên đến 8000 ký tự, NVARCHAR
lên đến 4000), hoặc nếu không đủ, hãy sử dụng (N)VARCHAR(MAX)
phiên bản, lưu trữ tới 2 GByte dữ liệu.
Cập nhật: SQL Server 2016 sẽ có hỗ trợ JSON gốc - một JSON
mới kiểu dữ liệu (dựa trên nvarchar
) sẽ được giới thiệu, cũng như FOR JSON
lệnh chuyển đổi đầu ra từ một truy vấn sang định dạng JSON
Cập nhật # 2: trong sản phẩm cuối cùng, Microsoft đã không bao gồm một JSON
riêng biệt kiểu dữ liệu - thay vào đó, có một số hàm JSON (để đóng gói các hàng cơ sở dữ liệu thành JSON hoặc để phân tích cú pháp JSON thành dữ liệu quan hệ) hoạt động trên các cột thuộc loại NVARCHAR(n)