No1*_*ver 5 sql sql-server ntext sql-update
我使用 SQL Server 数据库来存储很长的 Unicode 字符串。该字段来自类型“ntext”,理论上应限制为 2^30 个 Unicode 字符。
从MSDN 文档:
正文
可变长度 Unicode 数据,最大字符串长度为 2^30 - 1 (1,073,741,823) 字节。存储大小(以字节为单位)是输入的字符串长度的两倍。ntext 的 ISO 同义词是国家文本。
我做了这个测试:
生成 50,000 个字符的字符串。
运行更新 SQL 语句
UPDATE [table] SET Response='... 50,000 个字符串...' WHERE ID='593BCBC0-EC1E-4850-93B0-3A9A9EB83123'
检查结果 - 最后实际存储在字段中的内容。
结果是字段 [Response]仅包含43,679 个字符。字符串末尾的所有字符都被丢弃了。
为什么会发生这种情况?我该如何解决这个问题?
如果这真的是这种数据类型(ntext)的容量限制,还有哪一种数据类型可以存储更长的Unicode字符串?
小智 3
根据我所看到的,您可能只能复制 43679 个字符。它存储所有字符,它们在数据库中(使用 Select Len(Reponse) From [table]Where... 检查这一点以验证这一点),并且 SSMS 在复制时遇到的问题比您查看完整内容时更多数据。
| 归档时间: |
|
| 查看次数: |
14501 次 |
| 最近记录: |