【问题标题】:How to append to a text field in t-sql SQL Server 2005如何附加到 t-sql SQL Server 2005 中的文本字段
【发布时间】:2010-10-02 18:04:15
【问题描述】:

在 Sql Server 2005 中使用 t-sql 追加到文本字段的最佳方法是什么?

使用 varchar 我会这样做。

update tablename set fieldname = fieldname + 'appended string'

但这不适用于文本字段。

【问题讨论】:

  • 在我的脑海中,我会说应该可以。该问题可能是转换/铸造问题。试试 fieldname = fieldname + N'appended string'
  • 不幸的是,这不起作用。我得到“添加运算符中的数据类型 text 和 nvarchar 不兼容。”不过还是谢谢。

标签: sql sql-server sql-server-2005 tsql append


【解决方案1】:

试试这个:

update 
  tablename
set
  fieldname = convert(nvarchar(max),fieldname) + 'appended string'

【讨论】:

  • 好吧,至少我知道这是某种转换错误。 :) 谢谢布拉瓦克斯。
  • 如果 fieldname 为 null,这将不起作用。而不是 fieldname 尝试 COALESCE(fieldname, '')
【解决方案2】:

This should work (link)

从链接复制:

DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR(ntextThing)
FROM item
WHERE id =1
UPDATETEXT table.ntextthing @ptrval NULL 0 '!'
GO

【讨论】:

    【解决方案3】:

    在 2005 年,您应该使用 varchar(max) 或 nvarchar(max) 这些列将与普通的 varchar 函数一起使用。 text 和 ntext 已被弃用

    【讨论】:

      【解决方案4】:

      varchar(max) 的最大长度为 2,147,483,647 个字符。 这与 Text 数据类型相同。

      无论文本可以容纳什么,这个都可以容纳, 因此您不必担心通过切换到 VARCHAR(MAX) 来耗尽空间。

      【讨论】:

        猜你喜欢
        • 2015-01-30
        • 1970-01-01
        • 2011-09-20
        • 2011-07-02
        • 2010-10-13
        • 1970-01-01
        • 1970-01-01
        • 2013-02-09
        • 1970-01-01
        相关资源
        最近更新 更多