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 回答