7

どこにも答えが見つからないという簡単な質問があります。あるタイプのデータベースを別のタイプに頻繁に変換する必要があるため、MS SQL Server データベースを相互に変換するプログラムを作成しています。私が抱えている問題は、最大長が 4000 を超える nvarchar 変数を宣言できないことです。

「パラメーター '説明' に指定されたサイズ (6000) は、許可されている最大値 (4000) を超えています。」

それでも、元のデータベースでは nvarchar(6000) として明確に定義されています。少なくとも max_length が 6000 であるため、max max_length は -1 ですよね? nvarchar(max) を使用できることはわかっていますが、データベースを変換するソフトウェアを作成している場合は、可能な限りオリジナルに忠実でありたいと考えています。

最近、nvarchar の最大制限が変更されましたか、それとも見逃した設定ですか?

4

1 に答える 1

6

指定されたサイズ (6000) はバイト単位ですが、長さを指定すると、Unicode の文字数になります。4000 という制限は、nvarchar(xxxx) と nvarchar(max) の内部ストレージが異なるためです。4000 文字を超えるストレージが必要な場合は、nvarchar(max) を使用します。

于 2012-09-07T04:46:53.287 に答える