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

Kiểu dữ liệu SQL tốt nhất để lưu trữ chuỗi JSON là gì?

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ụng VARCHAR(MAX) hoặc NVARCHAR(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)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thay đổi hiệu suất thu thập dữ liệu có bị hạn chế đối với các bảng đã bật CDC không?

  2. T-SQL - Có cách nào (miễn phí) để so sánh dữ liệu trong hai bảng không?

  3. Thứ tự sắp xếp SQL với giá trị Null cuối cùng

  4. SQL:Làm cách nào để lấy giá trị của một thuộc tính trong kiểu dữ liệu XML?

  5. Xây dựng mệnh đề WHERE động trong thủ tục được lưu trữ