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

 手机用户2502896851 发布于 2022-12-31 20:33

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

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

这是linq-to-sql模型中的属性:

谢谢。

1 个回答
  • 所有MAX数据类型-VARCHAR(MAX),NVARCHAR(MAX)和VARBINARY(MAX)-限制为2 GB。您不需要做任何特别的事情。如果不指定MAX,则VARCHAR和VARBINARY的限制为8000,NVARCHAR的限制为4000(由于NVARCHAR为双字节)。如果您根本看不到任何数据,则说明正在发生其他情况。

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

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

    编辑:
    看到该字段被标记为NOT NULL,您确定要ClientFileJS正确设置对象的属性吗?空字符串是否可能是由于该属性被初始化为string ClientFileJS = "";并且从未更新过?

    2022-12-31 20:37 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有