首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL Server中varchar(MAX)的大小限制

SQL Server中varchar(MAX)的大小限制
EN

Stack Overflow用户
提问于 2014-07-27 17:23:26
回答 1查看 7.5K关注 0票数 2

我有一行,其中包含一个定义为varchar(MAX)的字段。我对字段的极限感到困惑:在一些地方,我看到varchar(最大)的大小限制为8K,而在其他地方,这个限制似乎是2GB。

我想将一个字符串保存到数据库中,它大约是220 K。我使用linq到-sql,当写查询提交到数据库时,行将被写入,而不会产生任何异常。但是,当我在SSMS中打开数据库表时,应该包含长字符串的单元格为空。为什么是这样,如何利用我所读到的2GB限制?

这是linq模型中的属性:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-27 17:26:01

所有最大数据类型--VARCHAR(最大)、NVARCHAR(最大)和VARBINARY(最大)--都有2GB的限制。你没什么特别的需要做的。如果不指定MAX,则VARCHAR和VARBINARY的限制为8000,而NVARCHAR的限制为4000 (因为NVARCHAR是双字节的)。如果你根本没有看到任何数据进入,那么其他的事情正在发生。

您确定该列甚至在INSERT语句中吗?如果你只提交20个字符的测试数据,这会被写入吗?如果您想查看Linq实际上提交了什么SQL,请尝试运行SQL并查看SQL Statement: Statement Ended事件,我相信。

另外,当您说“长字符串是空的”时,您指的是实际的空字符串还是空字符串?如果它不是NULL,还可以将字段包装在LEN()函数中,以查看在开始时是否存在返回空格,从而将任何非空格字符从视图中推开。意思是,SELECT LEN(stringField), * FROM Table。另一件事是使用“结果到文本”而不是“结果到网格”(这是一个查询选项)。

编辑:

看到该字段被标记为NULL,是否确实正确地设置了对象的ClientFileJS属性?空字符串是否可能是由于该属性被初始化为string ClientFileJS = "";而从未被更新?

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24983521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档