SQL Server NText field limited to 43,679 characters?(是否将SQL Server NText字段限制为43,679个字符?)
问题描述
我使用SQL Server数据库来存储非常长的Unicode字符串。该字段来自类型‘nText’,理论上应该限制为2^30个Unicode字符。
发件人MSDN documentation:
nText
可变长度的Unicode数据,最大字符串长度为2^30-1(1,073,741,823)字节。存储大小(以字节为单位)是输入的字符串长度的两倍。NText的ISO同义词是National 文本。
我做了这个测试:
生成50,000个字符的字符串。
运行更新SQL语句
更新[表] 设置响应=‘...50,000个字符串...‘ Where ID=‘593BCBC0-EC1E-4850-93B0-3A9A9EB83123’
检查结果--末尾的字段中实际存储的内容。
结果是[Response]字段仅包含43,679个字符。字符串末尾的所有字符都被抛出。
为什么会发生这种情况?我如何修复此问题?
如果这确实是此数据类型(NText)的容量限制,哪种数据类型可以存储更长的Unicode字符串?
推荐答案
根据我所见,您可能只能复制43679个字符。它存储所有字符,它们在数据库中(用Select Len(Response)from[TABLE]WHERE检查这一点...以验证这一点),并且SSMS在复制时遇到的问题比您查看完整数据时更多。
这篇关于是否将SQL Server NText字段限制为43,679个字符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:是否将SQL Server NText字段限制为43,679个字符?
基础教程推荐
- 从字符串 TSQL 中获取数字 2021-01-01
- MySQL根据从其他列分组的值,对两列之间的值进行求和 2022-01-01
- CHECKSUM 和 CHECKSUM_AGG:算法是什么? 2021-01-01
- 带有WHERE子句的LAG()函数 2022-01-01
- 如何在 CakePHP 3 中实现 INSERT ON DUPLICATE KEY UPDATE aka upsert? 2021-01-01
- MySQL 5.7参照时间戳生成日期列 2022-01-01
- 使用 VBS 和注册表来确定安装了哪个版本和 32 位 2021-01-01
- while 在触发器内循环以遍历 sql 中表的所有列 2022-01-01
- 带更新的 sqlite CTE 2022-01-01
- ORA-01830:日期格式图片在转换整个输入字符串之前结束/选择日期查询的总和 2021-01-01
