【问题标题】:How to insert large string in SQL Server如何在 SQL Server 中插入大字符串
【发布时间】:2015-07-30 08:57:44
【问题描述】:

我正在尝试将一个大字符串插入nvarchar(max) 列,但插入后我发现该字符串被切断。只存储了 43601 个字符。

怎么了?

【问题讨论】:

  • 你能告诉我们你到目前为止做了什么吗?
  • 如何插入这些字符串?以及如何判断它被截断了?检查实际字符串长度时得到什么长度,例如SELECT LEN(columnname) FROM dbo.YourTable; - 它真的被截断了,还是只是 GUI 中的显示受限?
  • 实际长度 (SELECT LEN) 为 102 275 个符号。但我怎么能看到完整的字符串?我正在使用 sql 管理工作室
  • 您可以将其转换为 xml 以查看完整的字符串。尝试这样的事情: select @variable_with_long_text as [processing-instruction(x)] FOR XML PATH 处理指令位可以阻止它显示诸如 之类的字符

标签: sql-server database string


【解决方案1】:

它存储完整的字符串,但是当您使用 select 语句时,SQL 界面仅显示一定数量的字符...您可以尝试通过 .NET/java 读取或尝试通过 SubString() 获取数据.. 您应该会看到完整的数据.. .

【讨论】:

    【解决方案2】:

    通常,在插入过程中出现截断时,您会收到“字符串或二进制文件将被截断”之类的警告文本。如果您没有收到此类警告,则可能您已成功插入数据。

    要检查它,您可以将包含大数据的字段转换为 XML 类型,然后将其打开以确保它存储良好。

    例子:

    SELECT TOP 1000 [id]
          ,CAST([text] AS XML)
      FROM [AnomalyDetection].[dbo].[TableA]
    

    结果:

    最后,点击数据在编辑器中打开它

    【讨论】:

      猜你喜欢
      • 2010-09-07
      • 1970-01-01
      • 2013-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多