SQL Server Nvarchar(最大)

时间:2013-01-31 19:08:12

标签: sql-server

我有一个insert语句,其中一列我的列类型为nvarchar(max)desc。我注意到当我查看数据库中的某些记录时,desc列有时是空白的。由于我的GUI有验证,我知道这是不可能的。经过进一步测试后,我发现如果该列的文本很大,它就不会插入那些数据。我发现这种奇怪的b / c我认为它会给我一些错误或者不完整地插入记录,但它只是将该列留空。 nvarchar(max)是否有限制,如果有的话,我可以使用其他数据类型。我做了一个测试,我尝试插入的字符超过20,000,但它在最终用户输入时有所不同。

“的 * ** * ** * ** * ** * * 编辑 * ** * ** * * * * ** * ** * ** * ** * * * * ***

感谢大家快速回复,通过研究我发现你们是正确的,它会持有(持有)那么多信息。我发现,当使用Microsoft Management Studio时,如果您的查询在您的结果返回时有多个字符的列大小,则显示为空白。为了验证这一点,我使用len(COLUMN_NAME)函数,看到字符长度是我所期望的。有谁知道我可以改变Microsoft Management Studio中的设置以实际看到结果?

4 个答案:

答案 0 :(得分:2)

NVARCHAR(MAX)有一个限制 - 它是2 ^ 31-1字节(2GB)。您可以阅读更多相关信息at Books Online

答案 1 :(得分:1)

答案 2 :(得分:1)

请参阅此link

引用:

  

严重 - VARCHAR(MAX)最多可以存储2 GB的数据 - 而不仅仅是8000个字符......

     

关键是:如果你使用varchar(max),你需要确保始终将所有>字符串显式地转换为varchar(max) - 正如我在本例中所做的那样。否则,SQL Server将>退回到“常规”varchar处理,而且确实限制为8000个字符....

答案 3 :(得分:0)

varchar(max)应该没有包含20,000个字符的问题,所以我认为这可能与其他内容有关。

我不确定您的GUI正在使用什么技术,但是这个主题似乎谈论了一个类似的问题,即您使用的提供商不支持varchar(max)并且可能需要更新。

Strange problem with nvarchar(max) fields and Classic ASP

它可能不是SQL服务器的问题,而是您用来与SQL Server通信的技术。

您是否可以指定用于与SQL Server(ASP,ASP.NET,版本?)通信的技术以及您正在使用的SQL Server版本。