Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jaki jest najlepszy typ danych SQL do przechowywania ciągu JSON?

Z pewnością NIE :

  • TEXT, NTEXT :te typy są przestarzałe od SQL Server 2005 i nie powinny być używane do nowych prac programistycznych. Użyj VARCHAR(MAX) lub NVARCHAR(MAX) zamiast tego

  • IMAGE , VARBINARY(MAX) :IMAGE jest przestarzały, podobnie jak TEXT/NTEXT i naprawdę nie ma sensu przechowywać ciągu tekstowego w kolumnie binarnej....

Więc zasadniczo pozostawia VARCHAR(x) lub NVARCHAR(x) :VARCHAR przechowuje ciągi inne niż Unicode (1 bajt na znak) i NVARCHAR przechowuje wszystko w trybie Unicode 2 bajty na znak. Więc potrzebujesz Unicode? Czy masz w swoich ciągach znaki arabskie, hebrajskie, chińskie lub inne niezachodnioeuropejskie? Następnie przejdź z NVARCHAR

(N)VARCHAR kolumny występują w dwóch odmianach:albo definiujesz maksymalną długość, która daje w wyniku 8000 bajtów lub mniej (VARCHAR do 8000 znaków, NVARCHAR do 4000) lub jeśli to nie wystarczy, użyj (N)VARCHAR(MAX) wersje, które przechowują do 2 GB danych.

Aktualizacja: Serwer SQL 2016 będzie miał natywną obsługę JSON - nowy JSON typ danych (który jest oparty na nvarchar ) oraz FOR JSON polecenie do konwersji danych wyjściowych z zapytania do formatu JSON

Aktualizacja nr 2: w produkcie końcowym Microsoft nie uwzględnił oddzielnego JSON datatype - zamiast tego istnieje szereg funkcji JSON (do pakowania wierszy bazy danych w JSON lub parsowania JSON na dane relacyjne), które operują na kolumnach typu 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. Umożliwienie użytkownikowi przekazywania nazwy tabeli i nazwy kolumny przy jednoczesnym zapobieganiu wstrzykiwaniu SQL

  2. Konwertuj typ danych obrazu na ciąg w SQL Server

  3. Jak dodać logowanie Sysadmin do SQL Server?

  4. Błąd SQL 2008 VS 2012:niepoprawna składnia w pobliżu słowa kluczowego „COMPUTE”

  5. Wartości kolumny podzielonego ciągu