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):IMAGEkhông được dùng nữa giống nhưTEXT/NTEXTvà 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)