17

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

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

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

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

4

4 に答える 4

49

リリース時にSQLServer2012(コードネームDenali)を実装します-機能がありFileTableます:)

  • varbinary(8000)8000バイトに制限されています-それは確かです!
  • varbinary(max)2ギガバイトに制限されています
  • varbinary(max) FILESTREAMファイルシステムによって制限されます(FAT32-2 Gb、NTFS-16エクサバイト)
于 2011-04-19T23:12:06.803 に答える
10

ここから取得:

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

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

これは 2 147 483 647 バイトです。29.9MB で止まる理由がわかりません。

于 2011-04-19T22:59:57.983 に答える
5

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

于 2012-06-12T23:54:42.033 に答える
5

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

SQL Server 2008 の MSDN の Varbinaryは、「列のデータ エントリが8,000 バイトを超える」場合に VarBinary(MAX) を使用することを明示的に示しています。

また、使用しているサーバーが SQL Server 2008 の場合は、 Filestream Capabilitiesも調べます。

于 2011-04-19T22:57:55.057 に答える