varbinary(max)
を使用して、SQLテーブルにファイル(任意のタイプ)を保存しています。このデータ型の最大使用量は8000ですが、8000の意味は何ですか?
オンラインドキュメントには、8000バイトと記載されています。保存されるファイルの最大サイズが8000/1024 = 7.8125 KBであることを意味しますか?
テストを開始し、保存できる最大ファイルは29.9 MBです。より大きなファイルを選択すると、SQLExceptionが発生します。
文字列型やバイナリは省略されます。ステートメントは終了されました。
リリース時にSQL Server 2012(コード名Denali)を実装する-FileTable
機能があります:)
varbinary(8000)
は8000バイトに制限されています-それは確かです!varbinary(max)
は2ギガバイトに制限されていますvarbinary(max) FILESTREAM
はファイルシステムによって制限されます(FAT32-2 Gb、NTFS-16エクサバイト)ここから撮影:
http://msdn.Microsoft.com/en-us/library/ms188362.aspx :
maxは、最大ストレージサイズが2³¹-1バイトであることを示します
これは2 147 483 647バイトです。なぜ29.9MBで止まるのかわかりません。
SQL Server 2005でvarbinary(max)を使用して5MBを保存しようとすると、「文字列またはバイナリデータが切り捨てられます」というエラーが発生しました。データベースの自動拡張サイズを増やすと問題が解決しました。理解するのにしばらくかかったので、私は共有したいと思っただけです:)
使用しているSQL Serverのバージョンは何ですか?
SQL Server 2008のMSDNのVarbinary は、VarBinary(MAX)が「列データエントリexceed8,000バイト。」
また、使用しているサーバーである場合は SQL Server 2008のFilestream機能 も確認します。