Dans SQL Server 2005 et 2008 R2, j'appelle une procédure stockée qui a un paramètre OUT défini comme varbinary(max)
. Le paramètre OUT renvoie 10020 octets selon DATALENGTH
.
Cependant, les erreurs SQL Server Si j'essaie de définir un Varbinary avec> 8 000 octets tels que Varbinary (10000). Par exemple.
The size (10000) given to the type 'varbinary' exceeds the maximum allowed for any data type (8000).
Que se passe-t-il ici? Comment le serveur SQL peut-il renvoyer plus d'octets que ceux autorisés dans le type de données? SQL Server utilise-t-il un autre type de données derrière les scènes pour tenir> 8 000 octets?
La taille maximale que vous pouvez Spécifiez est de 8 000. Tout ce qui est plus important doit être spécifié comme (MAX)
Voir https://msdn.microsoft.com/en-us/library/ms188362.aspx pour plus de détails.