web-dev-qa-db-fra.com

Espace réel maximal dans un varbinaire (max) dans SQL Server

J'enregistre des fichiers (de tout type) dans une table SQL, en utilisant une varbinary(max), je découvre que l'utilisation maximale de ce type de données est 8000, mais que signifie le 8000?

La documentation en ligne indique que cela fait 8000 octets. Est-ce à dire que la taille maximale du fichier à sauvegarder est de 8000/1024 = 7,8125 Ko?

Je commence les tests et le fichier maximum que je peux stocker est de 29,9 Mo. Si je choisis un fichier plus volumineux, je reçois une exception SQLException.

Chaîne ou des données binaires seront tronquées. La déclaration est terminée.

14
carlos

Implémentez SQL Server 2012 (nom de code Denali) lors de sa sortie - il a la fonctionnalité FileTable :)

  • varbinary(8000) est limité à 8000 octets - c'est sûr!
  • varbinary(max) est limitée à 2 gigaoctets
  • varbinary(max) FILESTREAM est limité par votre système de fichiers (FAT32 - 2 Go, NTFS - 16 exaoctets)
41
Eddy

Extrait d'ici:

http://msdn.Microsoft.com/en-us/library/ms188362.aspx :

max indique que la taille de stockage maximale est de 2³¹-1 octets

soit 2 147 483 647 octets. Je ne sais pas pourquoi il s'arrête à 29,9 Mo.

10
Mikecito

J'ai obtenu l'erreur "Les données de chaîne ou binaires seraient tronquées" lors de la tentative de stockage de 5 Mo à l'aide de varbinary (max) sur SQL Server 2005. L'augmentation de la taille de croissance automatique pour la base de données a résolu le problème. Il m'a fallu un certain temps pour comprendre, alors je pensais juste partager :)

5
annika

Quelle version de SQL Server utilisez-vous?

Varbinary sur MSDN pour SQL Server 2008 indique explicitement que VarBinary (MAX) est à utiliser lorsque "les entrées de données de colonne dépassent 8 000 octets. "

En outre, je voudrais également jeter un oeil à Capacités Filestream dans SQL Server 2008 si c'est le serveur que vous utilisez.

5
Smudge202