SQL Server 2005および2008 R2では、varbinary(max)
として定義された出力パラメーターを持つストアドプロシージャを呼び出しています。 outパラメータは、DATALENGTH
に従って10020バイトを返します。
ただし、varbinary(10000)など、8000バイトを超えるvarbinaryを定義しようとすると、SQL Serverエラーが発生します。例えば。
The size (10000) given to the type 'varbinary' exceeds the maximum allowed for any data type (8000).
ここで何が起きてるの? SQL Serverは、データ型で許可されているよりも多くのバイトを返すにはどうすればよいですか? SQL Serverは、8000バイト以上を保持するために舞台裏で他のデータ型を使用していますか?
指定できる最大サイズを指定は8000です。これより大きいものは(MAX)
として指定する必要があります
詳細は https://msdn.Microsoft.com/en-us/library/ms188362.aspx を参照してください。