Texte SQL Server, ntext, problème de type de données d'image

Microsoft a annoncé que: "Les types de données ntext , text et image seront supprimés dans une future version de Microsoft SQL Server." Et conseille d'utiliser nvarchar(max) , varchar(max) et varbinary(max) place.

Ma question: j'ai un type de données supérieur à 8 ko. Comment puis-je insert ces données dans sql? Quel type de données résoudra mon problème?

Document MSDN sur les types de données

N'importe lequel de nvarchar (max) , varchar (max) et varbinary (max) .

nvarchar (max) et varchar (max) sont des informations textuelles (avec nvarchar ayant un support unicode).

varbinary (max) est pour datatables binarys (images, files, etc.).

Dans tous les cas, il est documenté que l'utilisation de MAX indicates that the maximum storage size is 2^31-1 bytes.

S'il s'agit de données text, alors varchar(max) ou nvarchar(max) (supporte unicode). varchar (max) a une taille de stockage maximale de 2 ^ 31-1 octets ( Ref .)

S'il s'agit de données binarys, utilisez varbinary(max) .

Ne soyez pas confus par le bit "varchar".

Cela signifie que vous pouvez utiliser la plupart des fonctions sur varchar(max) comme sur varchar (50) or varchar (1000) or varchar (8000) `.

  • Les types de données (max) supportent 2 ^ 32-1 octets
  • Les types non-max supportent jusqu'à 8000 octets

Vous pouvez donc avoir varchar(50) ou varchar(1000) jusqu'à varchar(8000) mais pour stocker des strings plus longues, vous utiliserez varchar(max) .

Le bit "max" ou "50" / "1000" / "8000" détermine simplement le stockage interne + la longueur maximale de la string.

Il y a quelques différences mineures, comme l'indexing, bien sûr.

Vous utiliseriez nvarchar(max) , varchar(max) ou varbinary(max)

Si vous insérez des données supérieures à la limite de ligne de 8 Ko, datatables sont déplacées hors ligne vers une autre page dans une unité d'allocation ROW_OVERFLOW_DATA.

L' article MSDN suivant explique ce process plus en détail.

Je crois que le maximum pour varchar (max) est 2GB.