6

次の問題があります。

--DECLARE @TEST NVARCHAR(MAX)
--DECLARE @TEST2 NVARCHAR(MAX)

DECLARE @TEST NTEXT
DECLARE @TEST2 NTEXT

NVARCHAR(MAX) は、ストアド プロシージャを実行するときに入力する必要があるテキストの量に対して小さすぎます。また、TEXT、NTEXT、および IMAGE データ型はローカル変数に対して無効です。この問題を回避し、特大のテキストを保存するにはどうすればよいですかお気に入り。

前もって感謝します

4

1 に答える 1

14

NVARCHAR(MAX)ストアド プロシージャの実行時に入力する必要があるテキストの量に対して小さすぎる

悪いニュース: これは利用可能な最大のデータ型です! ストレージは 2GB で、これ以上のものはありません。実際、すべての大きな型は同じサイズです: VARCHAR(MAX)、NVARCHAR(MAX)、VARBINARY(MAX): それらはすべて最大サイズが 2GB です (補足として、非推奨のレガシー型の最大サイズはまったく同じです)。このサイズを超えることができるのは FILESTREAM だけですが、変数を FILESTREAM として宣言することはできません。

したがって、これは本当に疑問を投げかけます:変数に+2GBのデータを追加するために、ストアドプロシージャで一体何をしているのですか? これには正当な理由があるはずがないため、アプローチを再考する必要があります。RAMではなく、ディスクを使用してください、ルーク!@table 変数または #temp テーブルを検討してください...

于 2012-10-30T09:57:48.500 に答える