【问题标题】:NVarchar max datatype having unicode charactersNVarchar 具有 unicode 字符的最大数据类型
【发布时间】:2015-08-25 14:05:48
【问题描述】:

我创建了一个数据类型为 nvarchar(max) 的列,当我填充数据时,它只包含 150 个字符并如下所述截断剩余数据。

SampleColumn(nvarchar(max),null)

下面是我要插入的数据。

Alpha;动物健康;NIBR;诺拉汀 Vaconine 和诊断最佳;OTC 非处方药;中国制药;制药开发;日本制药;拉康制药;Sandoz;欧洲制药;印度制药;亚太制药

但采用以下字符,即 150 个字符。

阿尔法;动物健康;NIBR;诺拉汀 Vaconine 和诊断最佳;OTC 非处方药;制药中国;制药开发;Pharma japan;Pharma LaCan;Sandoz;pha

这里只取 150 个字符可能是什么原因,如果它是正确的,我怎样才能允许超过 150 个字符进入我的列?

【问题讨论】:

  • 在长度为 2gb 之前,您的列不会截断 nvarchar(max) 中的数据。您如何查看或插入这些数据?此外,您应该考虑规范化您的数据,而不是使用这样的分隔字符串。您在一个交点中放置了多个值,这违反了 1NF。
  • 你到底是如何插入数据的?
  • 试试这个选择:SELECT LEN(SampleColumn) FROM SampleTable。它返回什么?
  • Lamak - 将数据作为字符串插入,例如从列中读取数据并与新数据连接并再次更新到列。
  • Sean - 将数据作为字符串插入,例如从列中读取数据并与新数据连接并再次更新到列。

标签: sql-server sql-server-2008


【解决方案1】:

我想您正在使用 SQL Management Studio 查看数据。这是它的局限。查看配置选项。

【讨论】:

  • 是的,使用管理工作室,但是当其他列有超过 1000 个字符时,我可以在列中看到它,为什么不能呢?
  • 使用SUBSTRING 显示部分字符串。或者用 C# 编写小程序来查看整个值。
【解决方案2】:

可能是 SSMS?

尝试右键单击查询窗口,打开选项,将“文本”最大长度设置为 8192(此处允许的最大值)并重新执行...

【讨论】:

    猜你喜欢
    • 2019-07-16
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    • 2012-01-20
    • 1970-01-01
    • 2020-04-09
    • 2014-09-12
    • 1970-01-01
    相关资源
    最近更新 更多