2009-01-21 73 views
20

在Sql Server 2005中使用t-sql附加到文本字段的最佳方式是什么?如何附加到t-sql中的文本字段SQL Server 2005

用varchar我会这样做。

update tablename set fieldname = fieldname + 'appended string' 

但是这不适用于文本字段。

+0

关闭我的头顶我会说这应该工作。这个问题可能是一个转换/铸造问题。尝试fieldname = fieldname + N'appended string' – Craig 2009-01-21 17:57:07

+0

不幸的是,这并没有奏效。我得到'数据类型文本和nvarchar在添加操作符中不兼容。'不过谢谢。 – 2009-01-21 18:03:13

回答

33

试试这个:

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

This should work (link)

从链接复制:

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

我希望有一个更简单的方法,但感谢您的链接。 – 2009-01-21 18:05:50

3

在2005年,你应该使用VARCHAR(最大值)或nvarchar(最大),这些列将具有正常功能的varchar工作。文本和ntext已弃用

0

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

无论文字能够容纳什么,这可以容纳, ,所以你不必担心通过切换到VARCHAR(MAX)来耗尽房间。

谢谢。