web-dev-qa-db-ja.com

SQL Serverのvarbinary(max)の最大実空間

varbinary(max)を使用して、SQLテーブルにファイル(任意のタイプ)を保存しています。このデータ型の最大使用量は8000ですが、8000の意味は何ですか?

オンラインドキュメントには、8000バイトと記載されています。保存されるファイルの最大サイズが8000/1024 = 7.8125 KBであることを意味しますか?

テストを開始し、保存できる最大ファイルは29.9 MBです。より大きなファイルを選択すると、SQLExceptionが発生します。

文字列型やバイナリは省略されます。ステートメントは終了されました。

14
carlos

リリース時にSQL Server 2012(コード名Denali)を実装する-FileTable機能があります:)

  • varbinary(8000)は8000バイトに制限されています-それは確かです!
  • varbinary(max)は2ギガバイトに制限されています
  • varbinary(max) FILESTREAMはファイルシステムによって制限されます(FAT32-2 Gb、NTFS-16エクサバイト)
41
Eddy

ここから撮影:

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

maxは、最大ストレージサイズが2³¹-1バイトであることを示します

これは2 147 483 647バイトです。なぜ29.9MBで止まるのかわかりません。

10
Mikecito

SQL Server 2005でvarbinary(max)を使用して5MBを保存しようとすると、「文字列またはバイナリデータが切り捨てられます」というエラーが発生しました。データベースの自動拡張サイズを増やすと問題が解決しました。理解するのにしばらくかかったので、私は共有したいと思っただけです:)

5
annika

使用しているSQL Serverのバージョンは何ですか?

SQL Server 2008のMSDNのVarbinary は、VarBinary(MAX)が「列データエントリexceed8,000バイト。」

また、使用しているサーバーである場合は SQL Server 2008のFilestream機能 も確認します。

5
Smudge202