0

列の 1 つが列型 nvarchar(max) desc であるという挿入ステートメントがあります。データベース内のいくつかのレコードを見たときに、desc 列が空白になっていることがあることに気付きました。GUI による検証があるので、それが不可能であることはわかっていました。さらにテストした結果、その列のテキストが大きすぎると、そのデータが挿入されないことがわかりました。この種の奇妙な b/c を見つけたので、何らかのエラーが発生するか、レコードが完全に挿入されないのではないかと考えましたが、その列が空白のままになっています。nvarchar(max) に制限はありますか。もしあれば、その代わりに使用できる他のデータ型があります。挿入しようとした文字が20,000を超えるテストを行いましたが、エンドユーザーの入力によって異なります。

' * ** * ** * ** * ** * *編集* ** * ** * ** * ** * ** * ** * ** * ** * ***

迅速な返信ありがとうございます。調査の結果、皆さんが正しく、それだけの情報を保持できることがわかりました。私が見つけたのは、Microsoft Management Studio を使用しているときに、結果が戻ってきたときにクエリの列のサイズが多くの文字に達している場合、空白に見えるということです。これを確認するために、len(COLUMN_NAME) 関数を使用し、文字の長さが期待どおりであることを確認しました。Microsoft Management Studio の設定を変更して実際に結果を表示する方法を知っている人はいますか?

4

4 に答える 4

2

NVARCHAR(MAX) には制限があります - 2^31-1 バイト (2GB) です。詳細については、Books Online を参照してください。

于 2013-01-31T19:13:19.050 に答える
1

以下のリンクをチェックしてください。

デフォルトのサイズは 4000 で、最大サイズは 2GB です。

http://social.msdn.microsoft.com/Forums/en-US/databasedesign/thread/d5e0c6e5-8e44-4ad5-9591-20dc0ac7a870/

nvarchar(MAX) が保持できる最大文字数は?

于 2013-01-31T19:12:10.540 に答える
1

このリンクを参照してください

見積もり:

真剣に-VARCHAR(MAX)は最大2 GBのデータを保存できます-8000文字だけではありません.....

要点: varchar(max) を使用している場合は、この例で行ったように、すべての >strings を明示的に varchar(max) に常にキャストする必要があります。そうしないと、SQL Server は「通常の」varchar 処理にフォールバックし、実際には 8000 文字に制限されます....

于 2013-01-31T19:12:43.953 に答える
0

varchar(max)20,000 文字を保持するのに問題はないはずなので、これは何か他のことに関連している可能性があると思います。

GUI が使用している技術はわかりませんが、このスレッドでは、使用しているプロバイダーがサポートされておらずvarchar(max)、更新が必要になる可能性があるという同様の問題について話しているようです。

nvarchar(max) フィールドとクラシック ASP の不可解な問題

SQL サーバーの問題ではなく、SQL サーバーとの通信に使用している技術の問題である可能性があります。

SQL Server との通信に使用している技術 (ASP、ASP.NET、バージョンなど) と、使用している SQL Server のバージョンを指定できますか?

于 2013-01-31T19:14:05.870 に答える