是否将SQL Server NText字段限制为43,679个字符?

SQL Server NText field limited to 43,679 characters?(是否将SQL Server NText字段限制为43,679个字符?)
本文介绍了是否将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 文本。

我做了这个测试:

  1. 生成50,000个字符的字符串。

  2. 运行更新SQL语句

    更新[表] 设置响应=‘...50,000个字符串...‘ Where ID=‘593BCBC0-EC1E-4850-93B0-3A9A9EB83123’

  3. 检查结果--末尾的字段中实际存储的内容。

结果是[Response]字段仅包含43,679个字符。字符串末尾的所有字符都被抛出。

为什么会发生这种情况?我如何修复此问题?

如果这确实是此数据类型(NText)的容量限制,哪种数据类型可以存储更长的Unicode字符串?

推荐答案

根据我所见,您可能只能复制43679个字符。它存储所有字符,它们在数据库中(用Select Len(Response)from[TABLE]WHERE检查这一点...以验证这一点),并且SSMS在复制时遇到的问题比您查看完整数据时更多。

这篇关于是否将SQL Server NText字段限制为43,679个字符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)